Django | Python | Full-Stack Development

Full-Stack Cinema Booking Web Application

NC Cinema is a full-stack cinema booking web application built with Django. Users can browse movies, view screening times, create an account, and book cinema tickets through a responsive interface, while administrators manage movies, screenings, and bookings through Django's admin panel.

Project Overview

Software Summary:NC Cinema is a full-stack web application developed using Django that allows users to browse currently showing movies, view detailed information, register an account, and book cinema screenings online. The application includes authentication, role-based administration, and relational database management to create a complete cinema booking experience.

Core Goal: The goal of the project was to develop a complete full-stack web application that demonstrates authentication, database relationships, CRUD operations, responsive UI design, and role-based access control while providing users with an intuitive online cinema booking experience.

Development Context: This project was developed as part of my Full Stack Software Development diploma. It focused on applying backend web development concepts including Django models, authentication, relational databases, deployment, and object-oriented programming.

What I Learned: During development I significantly improved my understanding of

  • Django web development
  • Relational database design
  • Authentication & authorization
  • CRUD operations
  • Django ORM
  • Object-oriented programming
  • Responsive web design
  • Cloudinary media management
  • Full-stack application architecture
  • Deployment using Heroku

Biggest Challenge: One of the biggest challenges was designing the relationships between movies, screenings, bookings, and users while ensuring bookings remained secure and accessible only to authenticated users. This required careful planning of Django models, foreign key relationships, authentication decorators, and booking validation.

Features

Movie Browsing And Booking

Users can browse available movies, view detailed information,

and book screenings after logging into their account.

Implementation Notes

  • Movie listing page.
  • Individual movie detail pages.
  • Screening timetable.
  • Seat booking system.
  • Booking confirmation messages.

Authentication And User Accounts

The application includes a complete authentication system allowing users to securely register,

log in, and manage bookings.

Implementation Notes

  • User registration.
  • Login & logout.
  • Protected booking routes.
  • Django authentication system.
  • Flash success messages.

Database And Administration

Administrators can manage the entire cinema through Django's built-in admin panel.

Implementation Notes

  • Movie management.
  • Screening management.
  • Booking management.
  • Relational database.
  • Django Admin interface.

Roadmap and Iteration

Completed

  • Movie browsing.
  • User authentication.
  • Cinema booking system.
  • Responsive layout.
  • Movie detail pages.
  • Admin dashboard.
  • Relational database.
  • Cloudinary integration.
  • Deployment on Heroku.

In Progress

  • No active development.
  • Project completed as a programming portfolio piece.
  • Future improvements listed separately.

Future Ideas

  • Online payments.
  • Booking history.
  • User reviews.
  • Movie ratings.
  • Search functionality.
  • Advanced filtering.
  • Email confirmations.
  • Cinema seat selection.
  • User profiles.

Media and Links

Project Repository

Explore the complete NC Cinema source code on GitHub, including all Django models,

authentication logic, booking system implementation, and deployment configuration.

Live Demo

View the deployed NC Cinema application on Heroku to experience the full booking workflow,

user authentication, movie browsing, and cinema seat selection interface.

Technical Notes

NC Cinema was developed using Python and Django, following the Model-View-Template (MVT) architecture to separate application logic, data, and presentation.

The project utilises Django's ORM to manage relational database models for movies, screenings, and bookings, with foreign key relationships ensuring data integrity throughout the application.

Authentication and authorization are implemented using Django's built-in user system and protected routes, while media assets are hosted through Cloudinary.

The front end was built with HTML and CSS, version control was managed using Git and GitHub, and the application was deployed to Heroku.

Developing this project strengthened my understanding of full-stack architecture, relational databases, CRUD operations, authentication, deployment, and maintainable software design.

Technologies Used

  • Python
  • HTML
  • CSS
  • SQLite
  • Git
  • GitHub
  • Heroku