Skip to content

dhifanrazaqa/cinema_app

Repository files navigation

Cinema App

Cinema booking app, book a seat in available movies. Developed using Express Js + EJS with PostgreSQL database deployed in Vercel.

Install and Run

npm install
npm run migrate up
npm run start

Don't forget to setup .env file

What this app can do

  • Authentications and Authorization
  • See all movies and details
  • See all available seats in each movie
  • Book seats with Max 6 seats per transaction
  • Create, Top Up, and Withdraw balance

Table Schema

erd drawio

Explanation

Clean project architecture

In this project i'm trying to implement clean architecture 1_0u-ekVHFu7Om7Z-VTwFHvg

  • Inside src/Domains folder I put everything related to Enterprise Business Rules, This is the core-business rules or domain-specific business rules. Also, this layer is the least prone to change.
  • Inside src/Applications folder I put everything related to Application Business Rules, not the core business but plays an important role to provide all functionality for the app.
  • Inside src/Interfaces folder I put everything related to gateways (CRUD operations) and controllers.
  • Inside src/Infrastructures folder I put database and user interface.

Test Driven Development

I use TDD only in early development process because I feel that it makes my work slower. Some parts of the code are also without unit testing.

User Interface

I'm sorry for this "Minimalist" looking website at least it's responsive :)

Deployment

https://cinema-app-gray.vercel.app/