Welcome to the backend repository of our Camera Store Rental Management System! This project is designed to efficiently manage the rental process for a camera store that offers camera equipment for rent. As a freelance developer, I was responsible for implementing critical features such as user authentication, order creation, order returns, delay penalty calculations, order assignment to technicians, and importing supplies and equipment from other stores. Our application is built with NodeJS, the NestJS framework, and TypeScript, ensuring a robust and secure foundation for camera rental management.
Our Camera Store Rental Management System offers a comprehensive set of features to streamline camera rental operations:
-
User Authentication and Authorization: We've implemented user authentication and authorization using JWT Strategy and Auth Guards, ensuring that only authorized users can access and modify sensitive data.
-
Order Management: The system allows for the creation and management of rental orders, simplifying the booking process for customers.
-
Order Returns: Customers can easily return rented equipment, and the system calculates any delay penalties as needed.
-
Technician Assignment: Orders can be efficiently assigned to technicians, streamlining the maintenance and repair process.
-
Inventory Management: Importing supplies and equipment from other stores is simplified, ensuring that the store always has the necessary resources.
-
Admin Dashboard: An admin dashboard provides the necessary tools for store administrators to manage the entire rental process effectively.
-
CRUD Operations: You can easily manage categories, equipment, and other relevant data through intuitive CRUD functionality.
-
NodeJS: Our core technology, providing a robust and efficient server environment.
-
NestJS: The NestJS framework facilitates the structure of our application, making it maintainable and scalable, while adhering to best practices.
-
TypeScript: The use of TypeScript enhances the application's type safety and maintainability.
-
PostgreSQL Database: We've chosen PostgreSQL as our database system for its reliability and data integrity.
-
Prisma ORM: Prisma is used to interact with the PostgreSQL database, streamlining database operations and ensuring data consistency.
To get started with this project, follow these steps:
-
Clone the Repository: Begin by cloning this repository to your local machine.
-
Install Dependencies: Run
npm installto install the required dependencies. -
Database Setup: Configure your PostgreSQL database and update the connection settings in the project.
-
Environment Variables: Set up your environment variables for configurations like database connection, JWT secret, and other relevant settings.
-
Start the Application: Launch the application using
npm run start. You can also run it in development mode withnpm run start:dev. -
API Documentation: Detailed API documentation can be found in the
/docsdirectory. Refer to this for a better understanding of the available endpoints.
A progressive Node.js framework for building efficient and scalable server-side applications.
Nest framework TypeScript starter repository.
$ npm install# development
$ npm run start
# watch mode
$ npm run start:dev
# production mode
$ npm run start:prod# unit tests
$ npm run test
# e2e tests
$ npm run test:e2e
# test coverage
$ npm run test:covContributions to this project are welcome from the open-source community. Whether it's opening issues, submitting pull requests, or suggesting improvements, your contributions will help us enhance this Camera Store Rental Management System.
- Author - [Omar Abd El-Rahman Ali]
- LinkedIn - linkedin.com/in/omarabdel-rahman
- Twitter - (https://www.twitter.com/OmarAbdo___/)
This project is licensed under the MIT License.
Thank you for your interest in our Camera Store Rental Management System backend. We aim to provide an efficient solution for camera rental businesses, ensuring a smooth rental process and satisfied customers.