Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 59 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,59 @@
fathi
RentItOut: Peer-to-Peer Rental Platform for Everyday Items
RentItOut is a platform that allows users to rent everyday items they own but don’t use frequently, such as tools, electronics, and sports gear. This project focuses on building a backend RESTful API to power the platform.

Features
Item Listings: Users can list and manage items for rent (tools, electronics, etc.).
Rental Management: Set rental durations, pricing, and flexible rental periods.
Trust & Safety: User verification, ratings, and security deposits.
Logistics: Location-based pickup and delivery options.
Revenue Model: Commission-based fees and optional damage protection.
Tech Stack
Backend: Node.js, Express.js
Database: MySQL
Authentication: JWT (JSON Web Tokens)
API Docs: Swagger
Other: Docker (for containerization), Google Maps API, Nodemailer (email service)
Getting Started
Prerequisites:
Node.js (v14+)
MySQL
Docker (optional)
Installation:
Clone the repository:
bash
Copy code
git clone https://github.com/malhaq/RetItOut
cd rentitout
Install dependencies:
bash
Copy code
npm install
Set up MySQL and create the database (rentitout).
Start the app:
bash
Copy code
npm start
API will be running on http://localhost:3000.

API Documentation
API endpoints include:

POST /api/items - Create a new listing
GET /api/items - Get all listings
PUT /api/items/{id} - Update a listing
DELETE /api/items/{id} - Delete a listing
Authentication:
Use JWT for secure login and role-based access control.

Testing
Run tests with:

bash
Copy code
npm run test
Contributing
Fork the repo.
Create a branch (git checkout -b feature-name).
Submit a pull request.
License
MIT License. See the LICENSE file for details.