https://github.com/hoc081098/movie-ticket-booking
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 flutter
https://github.com/hoc081098/movie-ticket-booking
cinema-booking cinema-ticket flutter-bloc flutter-bloc-pattern flutter-bloc-pattern-rxdart flutter-bloc-rxdart flutter-rx-storage flutter-rxdart movie-booking-app movie-ticket movie-ticket-booking movie-ticket-management nestjs-backend rx-redux rxdart rxdart-bloc rxdart-flutter rxdart-redux rxredux ticket-booking-system
Last synced: 3 months ago
JSON representation
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 flutter
- Host: GitHub
- URL: https://github.com/hoc081098/movie-ticket-booking
- Owner: hoc081098
- License: mit
- Created: 2020-09-11T10:14:18.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2025-01-17T21:44:09.000Z (5 months ago)
- Last Synced: 2025-03-29T07:06:38.033Z (3 months ago)
- Topics: cinema-booking, cinema-ticket, flutter-bloc, flutter-bloc-pattern, flutter-bloc-pattern-rxdart, flutter-bloc-rxdart, flutter-rx-storage, flutter-rxdart, movie-booking-app, movie-ticket, movie-ticket-booking, movie-ticket-management, nestjs-backend, rx-redux, rxdart, rxdart-bloc, rxdart-flutter, rxdart-redux, rxredux, ticket-booking-system
- Language: Dart
- Homepage: https://pub.dev/packages/stream_loader
- Size: 184 MB
- Stars: 96
- Watchers: 8
- Forks: 39
- Open Issues: 23
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Movie-Ticket-Booking
A movie tickets booking and management application using `Flutter` and `NestJS`.
[](#contributors-)
[](https://app.codacy.com/gh/hoc081098/Movie-Ticket-Booking?utm_source=github.com&utm_medium=referral&utm_content=hoc081098/Movie-Ticket-Booking&utm_campaign=Badge_Grade_Settings)
[](https://hits.seeyoufarm.com)## Features
- Flutter BLoC pattern and [RxDart](https://pub.dev/packages/rxdart), [rx_redux](https://pub.dev/packages/rx_redux), [stream_loader](https://pub.dev/packages/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.## Directory structure
```
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
│ ...
```## Setup and run
Click to expand
- Download APK
- [User APK](https://github.com/hoc081098/DATN/blob/master/MobileApp/datn/build/app/outputs/flutter-apk/app-release.apk)
- [Admin APK](https://github.com/hoc081098/DATN/blob/master/MobileApp/movie_admin/build/app/outputs/flutter-apk/app-release.apk)
- Setup and run
- Backend (**You can use my url: https://datn-081098.herokuapp.com/**)
- Install [Node.js](https://nodejs.org/en/download/), [NestJS](https://docs.nestjs.com/)
- Install [MongoDB](https://docs.mongodb.com/manual/installation/), [Neo4j](https://neo4j.com/docs/operations-manual/current/installation/windows/)
- Create [Stripe secret API key](https://stripe.com/docs/keys), Create [MovieDb api key](https://www.themoviedb.org/settings/api)
- Create MongoDB database, (eg. `movieDb`), and create Neo4j database.
- Start MongoDB and Neo4j.
- Create .env file `./Backend/main/.env` has following structure:
```bash
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
```bash
$ npm install
```
- Running the Backend app
```bash
# 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`.
- Flutter
- Install [Flutter](https://flutter.dev/docs/get-started/install).
- Using **`stable`** channel:
```bash
❯ flutter channel stable
❯ flutter upgrade
```
- Flutter version:
```bash
❯ 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:
```bash
❯ flutter packages get
```
- Create .env file `./MobileApp/datn/.prod.env` and `./MobileApp/movie_admin/.env` has following structure:
```bash
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:
```bash
❯ flutter run
```
## Screenshots
### User mobile app
View Screenshots
| | | |
| :---: | :---: | :---: |
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
### Neo4j Graph
View Images
![]()
Collaborative filtering
![]()
Jaccard index (Jaccard similarity coefficient)
![]()
Weighted content## Contributors ✨
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
Petrus Nguyễn Thái Học
💻 📖 🚧
Phong
💻
Gunasekhar Ravilla
🐛 🤔
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!