CineBook
Movie tickets without the queue
Java 17JSPJakarta ServletsPostgreSQLJDBCMavenTomcatChart.js
The Problem
Booking a movie ticket in Nepal usually meant showing up in person, or using a booking system with no real seat selection and payment tacked on as an afterthought. Two people could even end up claiming the same seat.
The Solution
I built a booking platform on a plain MVC stack, no framework doing the thinking for me. Auth filters guard every route, DAOs reach PostgreSQL through prepared statements, and the seat map puts a temporary hold on your seat so nobody takes it out from under you mid-checkout.
The Results
- Live seat map with temporary holds, so two people cannot claim the same seat
- Khalti and eSewa sandbox checkout, plus cancellations with fee tracking
- PDF tickets from iText, BCrypt-hashed logins, role-based auth filters on every route
- Admin dashboard with Chart.js revenue analytics, poster uploads, and seating auto-generated per showtime
- Builds from a clean clone: the Maven Wrapper and Cargo pull down Maven and Tomcat 10.1 on first run



