Cine Magic is the backend of a web-based Cinema Ticket Booking System, offering robust server-side logic and API support for the frontend application. This backend system is developed using a variety of cutting-edge technologies and tools to ensure a seamless, efficient, and secure experience for both cinema operators and customers.
- NestJS: A progressive Node.js framework for building efficient and scalable server-side applications.
- Express: A minimal and flexible Node.js web application framework that provides a robust set of features for web and mobile applications.
- Node.js: A JavaScript runtime built on Chrome's V8 JavaScript engine, ideal for building fast and scalable network applications.
- TypeScript: A strongly typed programming language that builds on JavaScript, giving you better tooling at any scale.
- MongoDB: A NoSQL database designed for high performance, high availability, and easy scalability.
- Mongoose: An elegant MongoDB object modeling tool designed to work in an asynchronous environment.
- JWT (JSON Web Tokens): A compact, URL-safe means of representing claims to be transferred between two parties.
- Web Socket: Enables real-time, bidirectional and event-based communication between the browser and the server.
- Email Integration: Using Gmail SMTP for reliable email delivery.
- Nodemailer: An easy-to-use module to send emails using Node.js.
- .hbs (Handlebars): A simple templating language used for creating email templates.
- Juice: Inlines CSS stylesheets for HTML emails to ensure consistent styling.
- PayPal Sandbox: A test environment that provides a safe space for testing the payment integration without involving real money.
- RestAPIs: Architectural style for designing networked applications.
- Swagger: A tool for documenting APIs in a precise, readable, and user-friendly format.
- NodeCron: A task scheduler in Node.js using full cron syntax for running scheduled jobs.
- Jest: A delightful JavaScript Testing Framework with a focus on simplicity.
- OMDB API: Used for fetching movie data to enrich the application's content.
- .env: A module for loading environment variables from a .env file into
process.env
.
- Nest cls: Contextual logging system for maintaining request-specific data throughout the lifecycle of a request.
- Docker: A platform for developing, shipping, and running applications in containers.
- GitHub Actions: Automates workflows, CI/CD, testing, and deployment.
- Joi: A powerful schema description language and data validator for JavaScript.
A progressive Node.js framework for building efficient and scalable server-side applications.
To get started with the Cine Magic backend on your local machine, follow these steps:
-
Clone the repository:
git clone https://github.com/DFanso/cine-magic-backend.git
-
Navigate to the project directory:
cd cine-magic-backend
-
Install dependencies:
npm install
-
Set up environment variables:
- Create a .env file based on the provided .env.example file.
- Configure database and other environment variables as needed.
-
Start the development server:
npm start
-
The backend API will be accessible at http://localhost:3000.
-
The backend API Doc will be accessible at http://localhost:3000/api.
# unit tests
$ npm run test
# e2e tests
$ npm run test:e2e
# test coverage
$ npm run test:cov
Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please read more here.
Nest is MIT licensed.
If you have any questions or need further assistance, please feel free to contact us.