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/.envhas 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 stablechannel:❯ 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.envand./MobileApp/movie_admin/.envhas 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!






































