Movie theater website: showtimes, snacks and ticket purchase.
Problem & solution
Cineko was my first end-to-end web project, built in 2024 during my fourth semester. It is a working movie-theater site: users browse the showtimes, open each movie page (with its trailer), build a snack order, check memberships and promotions, and complete a cart-based checkout flow. Behind it runs a Flask backend with a SQLite database, registration and login with hashed passwords (SHA-256) and automatic welcome emails. The entire front-end is hand-built with HTML, CSS (no frameworks) and vanilla JavaScript, deployed on Vercel as a Python serverless function.
Highlights
- First web project
- 15+ movies
- Full checkout flow
- Auth + emails
What it does
- [01]
Showtimes with 15+ movie pages, each with its own trailer and detail view.
- [02]
Snacks, memberships and promotions modules with a cart and checkout flow.
- [03]
Registration and login with hashed passwords (SHA-256) on top of SQLite.
- [04]
Automatic welcome emails (SMTP) with embedded movie posters.
- [05]
Front-end built 100% by hand: HTML, framework-free CSS and vanilla JavaScript.
- [06]
Deployed on Vercel as a Python serverless function (Flask).
Try the app
The demo opens in a new tab.
Screenshots
Click a screenshot to enlarge it
Tech stack
- Python
- Flask
- SQLite
- JavaScript
- HTML
- CSS
- Vercel