- Notifications
You must be signed in to change notification settings - Fork39
A movie tickets booking and management application using Flutter and NestJS. Flutter BLoC pattern and RxDart, rx_redux, stream_loader for state management. Firebase authentication, socket.io. Backend using NestJS, MongoDB database and Neo4j. Recommendation using Neo4j database and Collaborative filtering via Cypher query. Movie ticket booking fl…
License
hoc081098/Movie-Ticket-Booking
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
A movie tickets booking and management application usingFlutter
andNestJS
.
- Flutter BLoC pattern andRxDart,rx_redux,stream_loader for state management.
- Firebase authentication, socket.io.
- Backend using NestJS, MongoDB database and Neo4j.
- Recommendation using Neo4j database and Collaborative filtering via Cypher query.
project│ README.md│└───Backend│ └───main <- [Backend]│ │ ...│ │ ...│ └───Docs│ │ Database.zip│ │ Diagram.png│ │ diagram_sql.png│└───MobileApp│ └───datn <- [User mobile app]│ │ │ ...│ │ │ ...│ ││ └───movie_admin <- [Admin, staff mobile app]│ │ ...│ │ ...│└───Screenshots │ Screenshot_add_card.png │ Screenshot_add_comment.png │ ...
Click to expand
Download APK
Setup and run
Backend (You can use my url:https://datn-081098.herokuapp.com/)
CreateStripe secret API key, CreateMovieDb api key
Create MongoDB database, (eg.
movieDb
), and create Neo4j database.Start MongoDB and Neo4j.
Create .env file
./Backend/main/.env
has following structure:MONGODB_URL=mongodb://localhost:27017/movieDbMOVIE_DB_API_KEY=movie_db_api_keySTRIPE_SECRET_API=stripe_secret_api_keyEMAIL=your_email@gmail.comEMAIL_PASSWORD=your_email_passwrodNEO4J_URL=bolt://localhost:7687NEO4J_USER=neo4jNEO4J_PASSWORD=password
Installation dependencies
$ npm install
Running the Backend app
# development$ npm run start# watch mode$ npm run start:dev# production mode$ npm run start:prod
Seed data (Put headers in your request
Authorization: Bearer {{token}}
, token can be get from Mobile App after successfully login).- Movies:
POST http://localhost:3000/movies/seed
. - Theatres:
POST http://localhost:3000/theatres/seed
. - Seats:
POST http://localhost:3000/seats/seed
, body:{"id": theatreId}
. - Show times:
POST http://localhost:3000/show-times/seed
. - Tickets:
POST http://localhost:3000/seats/seed-tickets
. - Transfer data from MongoDB to Neo4j:
POST http://localhost:3000/neo4j/transfer
. - Comments(optional):
POST http://localhost:3000/comments/seed
. - Promotions(optional):
POST http://localhost:3000/promotions/seed
.
- Movies:
Flutter
- InstallFlutter.
- Using
stable
channel:❯ flutter channel stable❯ flutter upgrade
- Flutter version:
❯ flutter --versionFlutter 2.0.0 • channel stable • https://github.com/flutter/flutter.gitFramework • revision 60bd88df91 (8 days ago) • 2021-03-03 09:13:17 -0800Engine • revision 40441def69Tools • Dart 2.12.0
- Install all the packages by:
❯ flutter packages get
- Create .env file
./MobileApp/datn/.prod.env
and./MobileApp/movie_admin/.env
has following structure:BASE_URL=datn-081098.herokuapp.comWS_URL=https://datn-081098.herokuapp.com/WS_PATH=/socketPLACES_API_KEY=your_places_api_key
- Run app on real devices or emulator by:
❯ flutter run
Thanks goes to these wonderful people (emoji key):
Petrus Nguyễn Thái Học 💻📖🚧 | Phong 💻 | Gunasekhar Ravilla 🐛🤔 |
This project follows theall-contributors specification. Contributions of any kind welcome!
About
A movie tickets booking and management application using Flutter and NestJS. Flutter BLoC pattern and RxDart, rx_redux, stream_loader for state management. Firebase authentication, socket.io. Backend using NestJS, MongoDB database and Neo4j. Recommendation using Neo4j database and Collaborative filtering via Cypher query. Movie ticket booking fl…