Giter Club home page Giter Club logo

moviewebsite's Introduction

Movie-Ticket-Booking

A movie tickets booking and management application using Flutter and NestJS.

All Contributors

Codacy Badge Hits

Features

  • 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.

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

  • Setup and run

    • Backend (You can use my url: https://datn-081098.herokuapp.com/)

      • Install Node.js, NestJS

      • Install MongoDB, Neo4j

      • 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.
    • 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

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):


Petrus Nguyễn Thái Học

💻 📖 🚧

Phong

💻

Gunasekhar Ravilla

🐛 🤔

This project follows the all-contributors specification. Contributions of any kind welcome!

moviewebsite's People

Contributors

sharathpai avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.