/finnkino-cinema

🎞 A movie ticket booking website built with ReactJS, Redux and Material UI.

Primary LanguageJavaScript

Finnkino Cinema

A movie ticket booking website built with ReactJS, Redux and Material UI.

See the live demo -> Finnkino Cinema (the API might be expired when you visit the website).

Use this account for testing:

  • πŸ‘¨πŸ»β€πŸ’»Username: tule07
  • πŸ”Password: 123456Tu

Tech stack

Tech logos

Core

UI & Styling

  • Material UI: React-based UI component library.
  • SCSS/Sass: CSS pre-processor for styling the website.

Features

πŸ‘ΈπŸ»For users:

Fully responsive design on devices (laptop, tablet and mobile).

Page Features
Home - show theaters, movies and showtime schedules
Movie details - show movie details
Authentication (login + signup) - validate login and signup forms
Ticket booking - build grid-shaped seat layout with different types of seat
- map each seat row in alphabetical order
- allow to select a maximum of 5 seats
- cannot select sold seats
Profile - allow to change user information
- show transaction history

πŸ‘©πŸ»β€πŸ’ΌFor administrators:

Page Features
User management - display the table of users (both clients and administrators)
- search user by name
- create, update and delete user. Validate user information forms.
Movie management - display the table of movies
- search movie by name
- create, update and delete movie. Validate movie information forms
- create movie showtime schedules. Validate showtime schedule information forms

Project structure

Main source structure

root
└── src
    β”œβ”€β”€ api                         # Axios client configuration and request setup
    β”œβ”€β”€ assets                      # Shared multimedia files
    β”œβ”€β”€ components                  # Shared components
    β”œβ”€β”€ constants                   # Shared constants
    β”œβ”€β”€ containers                  # Pages
    β”‚   β”œβ”€β”€ AdminTemplate           # Admin pages
    β”‚   β”‚   β”œβ”€β”€ index.js            # Admin template
    β”‚   β”‚   β”œβ”€β”€ components          # Shared components for admin template
    β”‚   β”‚   β”œβ”€β”€ UserDashBoard
    β”‚   β”‚   └── MovieDashBoard
    β”‚   β”œβ”€β”€ AuthTemplate            # Authentication pages
    β”‚   β”‚   β”œβ”€β”€ index.js            # Authentication template
    β”‚   β”‚   β”œβ”€β”€ components          # Shared components for authentication template
    β”‚   β”‚   β”œβ”€β”€ LoginPage
    β”‚   β”‚   └── RegisterPage
    β”‚   β”œβ”€β”€ HomeTemplate            # Home pages
    β”‚   β”‚   β”œβ”€β”€ index.js            # Home template
    β”‚   β”‚   β”œβ”€β”€ components          # Shared components for home template
    β”‚   β”‚   β”œβ”€β”€ HomePage
    β”‚   β”‚   β”œβ”€β”€ MovieDetailsPage
    β”‚   β”‚   β”œβ”€β”€ ProfilePage
    β”‚   β”‚   └── TicketBookingPage
    β”‚   └── NotFoundPage            # 404 not found page
    β”œβ”€β”€ guard                       # Protect private routes
    β”œβ”€β”€ hooks                       # Shared hooks
    β”œβ”€β”€ i18n                        # Translation feature configuration
    β”œβ”€β”€ routes                      # Routing setup
    β”œβ”€β”€ store                       # Redux configuration and reducer setup
    β”œβ”€β”€ validators                  # Schema validators for user inputs
    β”œβ”€β”€ App.js
    └── index.js

Routing setup

Installation and run

Check out the website -> Finnkino Cinema or run locally by running the following commands:

Clone the project

git clone https://github.com/scoobytux/finnkino-cinema.git
cd finnkino-cinema

Install dependencies

npm install

Run the development server

npm start

Open http://localhost:3000 with your favorite browser to see the project 😎.

Some project's views on devices

  • On MacBook/Laptop

finnkino login laptop

finnkino booking laptop

finnkino user management laptop

finnkino user management laptop

  • On Mobile
finnkino detail mobile finnkino profile mobile

Contributors

Thanks go to these wonderful people ✨


Phuong Vu (Chloe)

πŸ’»πŸ“–

Tu Le (Liam)

πŸ’»πŸ“–

Credits and references

Resource Description
CyberSoft Academy API provider
Finnkino A cool Finnish website for booking online movie tickets we got inspiration from