Skip to content

Developing a user-oriented SaaS product for efficient car management and dealership operations.

License

Notifications You must be signed in to change notification settings

Niraj-parihar/Car-Manager-Api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Car Manager API - README

Welcome to the Car Manager API! This project aims to provide a comprehensive solution for managing cars, dealerships, and deals through a RESTful API. This document outlines the project's features, database schema, installation instructions, API documentation, and more.

Table of Contents

Database Schema

The database schema is defined using a visual diagram and can be found at this link. It represents the relationships between cars, dealerships, users, and deals in the system.

Requirements

The Car Manager API strives to fulfill the following requirements:

  1. Implement authentication for admins, users, and dealerships using JSON Web Tokens (JWT).
  2. Enable JWT invalidation for logout and password change functionality.
  3. Provide REST endpoints for users and dealerships to manage cars, dealerships, and deals.
  4. Utilize geographical data for user location-based operations (using maps API).
  5. Support multipart/form-data for POST requests.
  6. Implement asynchronous error handling using promises for all API endpoints.
  7. Utilize ES6 features and coding standards.
  8. Generate dummy data using the Faker.js library.
  9. Provide basic API documentation for developers.

Installation

  1. Clone this repository.
  2. Install the required dependencies using npm install.
  3. Configure environment variables for database connection and JWT secret.
  4. Run the server using npm start.

API Documentation

For detailed API documentation, refer to the API Documentation file.(Under Development)

Authentication

Authentication is implemented using JSON Web Tokens (JWT). Users, dealerships, and admins will receive a JWT upon successful login, which will be included in the headers of subsequent requests for authentication.

Error Handling

Asynchronous error handling is consistently applied to all API endpoints. Detailed error messages and appropriate HTTP status codes are provided to facilitate graceful error handling on the client side.

Technologies Used

  • Node.js
  • Express.js
  • MongoDB Atlas
  • Jest
  • JWT for authentication
  • Faker.js for generating dummy data

Contributing

Contributions are welcome! Please follow the guidelines outlined in the Contributing Guidelines to contribute to the project.(Under Development)

License

This project is licensed under the MIT License.

Data Population

To populate the database with dummy data, run the following command:

npm run populate-data

About

Developing a user-oriented SaaS product for efficient car management and dealership operations.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published