Features
Special feature
Utilized the feature of reserving seats in real-time
Responsibilities
Integrate VNPay payment method
To easily book movie tickets, I have integrated the VNPay payment method into the cinema web application
Banking integration
In order to enhance convenience for customers during the payment process, I have implemented a banking integration feature with Vnpay wallet, allowing them to save valuable time
You have the option to integrate their bank accounts on the information update page
or on the checkout page (if you haven't linked your bank account previously)
Note: Please carefully check your IP address
Personal information
To optimize the project capacity, I utilized Amazon Web Services' S3 service for storing various application images, such as customer images, movies, posters, etc
Change password
To increase the security of the application before saving the passwords to the database, I processed the raw passwords by encrypting them
Order
Attension: You can only access the order details mentioned above if you are logged in with the correct account
Showtime management
Check QR code
Developed APIs that verify the authenticity of a QR code and retrieve order data. This function is designed for staff members checking tickets at the counter
Automation testing
Developed an automated test for searching movies using the Cypress framework
Other functions
- Created unit test classes for various services, including seat, showtime, staffdetails, and ticket classes
- Developed APIs for storing tickets, orders, toppings, generating QR codes upon successful payment, and managing order statuses
- Developed APIs that retrieve data for the homepage and movie details page
- The booking page and personal information change page were both responsive
- Contributed to database entity creation
- Fixed bugs, etc
Built with
- Front end: NextJS, NextAuth, Tailwind CSS, Ant Design
- Back end: Spring Boot, Doma Framework, Pusher
- Database: PostgreSQL
- Testing: Mockito, Cypress
Sources
Gitlab link to refer to source code
Front end
- For customer: cinema
- For staff: cinemaEmpl
- For manager: admin-zuhot
- Cypress testing: cypress-test
Back end
- API: cinemaAPI
Installation
Requirement
- JDK (Java Development Kit) 8 or higher
- Maven
- Node.js and npm (installed together with Node.js)
Step 1: Installing PostgreSQL
Download and Install PostgreSQL: Visit the PostgreSQL official website to download and install PostgreSQL for your operating system
Click on the link to download the database file
Step 2: Installing Spring Boot
Open the project and run Spring Boot App (or run JUnit Test if you want to test)
Step 3: Installing Next.js
npm install
npm run dev
Step 4: Accessing the Application
Open a web browser and go to http://localhost:3000 to view your application in action.
Deployment
- For customer: https://zuhot-cinema.vercel.app/
- For staff: https://employee-zuhot.vercel.app/
- For manager: https://admin-zuhot.vercel.app/
Demo
Click on the link to book tickets
Accounts used to test the website
Customer account
- Username: hohoanggkhangg@gmail.com
- Password: 23072003
Payment method
VNPay wallet
Local bank card
- Bank abbreviation: NCB
- Bank code: 9704198526191432198
- Cardholder's name: NGUYEN VAN A
- Issued on: 07/15
- OTP: 123456
VISA (No 3DS)
- Bank code: 4456530000001005
- CVC/CVV: 123
- Cardholder's name: NGUYEN VAN A
- Issued on: 12/23
- Email: test@gmail.com
- Address: 22 Lang Ha
- City: Ha Noi
Paypal wallet
- Username: sb-dices27734186@personal.example.com
- Password: 5A^-SSs7
Reference
Check out the full docs on cinema.com for more details.