Skip to content

Abbas-Nedal/RentItOut

Repository files navigation

RentItOut API

RentItOut is a peer-to-peer rental platform that allows users to list and rent everyday items like tools, sports equipment, and electronics. This project focuses on building the backend API for the platform.

Features

  • Item listings for rent
  • Rental management and pricing
  • User authentication and role-based access
  • Trust, safety, and verification for users
  • Delivery and pickup logistics for rented items
  • Automatic API documentation using Swagger

Setup Instructions

  1. Clone the repository:
    git clone https://github.com/Abbas-Nedal/RentItOut.git
    
  2. Install dependencies:
    npm install
    
  3. Run the application:
    npm start
    
  4. Access API Documentation:
    See documentation: http://localhost:3000/api-docs
    

Technologies

  • Node.js: The runtime environment for executing JavaScript code on the server.
  • Express.js: A web application framework for building APIs and handling HTTP requests.
  • MySQL: The relational database used to store user, item, and rental data (hosted on AWS RDS).
  • AWS: Amazon Web Services, used for hosting the MySQL database on Amazon RDS for reliable and scalable cloud database management.
  • Docker: A containerization tool that simplifies the deployment process by packaging the application and its dependencies into a container.
  • Winston: A logging library used to log requests and other system events.
  • body-parser: Middleware for parsing incoming request bodies in JSON format.
  • Swagger: A tool for auto-generating API documentation and testing endpoints.
  • RESTful API: The architectural style used for designing the API endpoints.
  • Express-validator: Middleware for validating request bodies.
  • Nodemailer: A module for sending emails from Node.js applications.
  • dotenv: Module for loading environment variables from a .env file.
  • jsonwebtoken: Library to create and verify JSON Web Tokens (JWT) for authentication.

Project Structure

📦 RentItOut
┣ 📂 config              # Configuration settings and database connection file
┣ 📂 controllers              # Contains request-handling logic
┣ 📂 docs              # Contains Swagger configuration and documnetaion file
┣ 📂 logs-output              # Stores logs output
┣ 📂 middlewares              # Middleware functions for processing requests
┣ 📂 models              # Database models, SQL query logic
┣ 📂 routes              # API route definitions
┣ 📂 services              # Business logic, external API handling, mail service
┣ 📂 validations              # Request validation logic
┣ 📜 .dockerignore
┣ 📜 .env
┣ 📜 .gitignore
┣ 📜 docker-compose.yml
┣ 📜 Dockerfile
┣ 📜 package-lock.json
┣ 📜 package.json
┣ 📜 README.md
┗ 📜 server.js              # Entry point for the server

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •