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.
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/)
-
Create Stripe secret API key, Create MovieDb 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/movieDb MOVIE_DB_API_KEY=movie_db_api_key STRIPE_SECRET_API=stripe_secret_api_key [email protected] EMAIL_PASSWORD=your_email_passwrod NEO4J_URL=bolt://localhost:7687 NEO4J_USER=neo4j NEO4J_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
- Install Flutter.
- Using
stable
channel:❯ flutter channel stable ❯ flutter upgrade
- Flutter version:
❯ flutter --version Flutter 2.0.0 • channel stable • https://github.com/flutter/flutter.git Framework • revision 60bd88df91 (8 days ago) • 2021-03-03 09:13:17 -0800 Engine • revision 40441def69 Tools • 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.com WS_URL=https://datn-081098.herokuapp.com/ WS_PATH=/socket PLACES_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 the all-contributors specification. Contributions of any kind welcome!