Final Database Management System project by Group G7:
- Handaneswari Pramudhyta Imanda - 2106731346
- Roy Oswaldha - 2106731592
- Stefan Agusto Hutapea - 2106700744
TixOnline is a web-based cinema booking application developed using Node.js, Express, PostgreSQL, and EJS. It provides users with a seamless and convenient online platform to browse movies, view showtimes, and book tickets for their favorite films. With a robust backend powered by Node.js and Express, and a reliable database in PostgreSQL, TixOnline offers a smooth and secure cinema booking experience. The dynamic HTML views are generated using EJS (Embedded JavaScript), making the application visually appealing and interactive.
Enjoy personalized features by creating an account and logging in. TixOnline allows users to manage their profile, track booking history, and receive tailored recommendations. With secure authentication mechanisms in place, your personal information and account details are safe.
Discover an extensive collection of movies through TixOnline's intuitive interface. Explore detailed information about each movie, including plot summaries, genres, and ratings. Get a comprehensive overview and make informed choices about your movie selections.
TixOnline simplifies the ticket booking process, allowing users to effortlessly select their preferred movie, showtime, and seats. With a streamlined interface, you can confidently proceed to book tickets securely. The application ensures that seats are not double-booked, providing a hassle-free experience.
Easily access your past bookings with TixOnline's booking history feature. Stay organized by reviewing your previous movie choices, showtimes, and the seats you booked. Keep track of your cinema experiences and plan future outings with ease.
TixOnline's admin management feature allows administrators to manage movies, schedules, theaters, and studios. Admins can add, edit, and delete movies, schedules, theaters, seats, and studios. They can also view all transactions and tickets booked by users. Admins have access to a dashboard that provides an overview of the application's performance.
TixOnline offers a secure payment gateway for users to pay for their tickets. The application supports PayPal payments, allowing users to pay using their PayPal accounts or credit/debit cards.
TixOnline provides a comprehensive list of theaters and studios where movies are shown. Users can view detailed information about each theater, including address and images. They can also view the layout of each studio and select their preferred seats.
The following are tables used in the TixOnline's database.
This table stores information about administrators of the TixOnline application.
- admin_id
- username
- password
This table stores information about movies available for booking.
- movie_id
- title
- genre
- duration
- release_date
- synopsis
- status
- trailer_link
- images
- rating
This table stores information about movie schedules, including showtimes and prices.
- schedule_id
- movie_id
- studio_id
- date
- hours
- prices
This table stores information about seats in the studios.
- seat_id
- studio_id
- seat_number
This table links schedules with their corresponding seats.
- schedule_id
- seat_id
This table stores information about movie studios.
- studio_id
- name
- type
- theater_id
This table stores information about theaters where movies are shown.
- theater_id
- name
- address
- city
- theater_images
This table stores information about tickets booked by users.
- ticket_id
- transaction_id
- schedule_id
- seat_id
This table stores information about user transactions.
- transaction_id
- user_id
- quantity
- transaction_status
- transaction_date
- payment_max_date
This table stores tokens for "Remember Me" functionality.
- remember_me_tokens_id
- user_id
- token
- expires_at
- User Flowchart
To get started with TixOnline, follow these simple steps:
- Clone the repository:
git clone https://github.com/SistemBasisData2023/TixOnline
- Install dependencies:
npm install
- Start the application:
npm start
- Visit
http://localhost:3000
in your browser to access TixOnline.
- Node.js
- Express
- PostgreSQL
- EJS
- HTML
- CSS
- Tailwind
- JavaScript
- Libraries: Body-parser Paypal-rest-sdk bcrypt multer fs cookie-parser node-cron ejs pg