Skip to content

leenfhd/rentItOut-

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

102 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Logo

RentItOut 🏠

Peer-to-Peer Rental Platform for Everyday Items - Easy Renting for many needs!


🏷️ Badges

GitHub issues GitHub last commit

This project is actively maintained and open for contributions. Check out the documentation for more details!


πŸ“‹ Table of Contents

  1. Introduction
  2. Core Features
  3. Extra Features
  4. Roles
  5. Tools
  6. Getting Started
  7. API Documentation
  8. Demo
  9. Contact/a>

🏠 What is RentItOut?

RentItOut is a collaborative project for the Advanced Software Engineering course. It aims to provide an easy rental process through a platform that offers a trustworthy variety of items for rent. In addition, it facilitates easy communication among users, includes features such as notifications and chatting, and incorporates rating functionalities.

πŸ† Core Features

  1. Item Listings for Rent: Users can post items they own but rarely used, categorized by item type (e.g., tools, electronics).
  2. Rental Management and Pricing: Manage rental durations, pricing models, and flexible rental periods.
  3. Trust, Safety, and Verification: Implement user verification and ratings to promote safe transactions.
  4. Logistics: Options for delivery pickup, supported by a location-based external api.
  5. Revenue Model and Insurance: Generate revenue through platform fees, and provide insurance options for item protection.
  6. User Experience and Recommendations: Enhance the user experience with personalized recommendations.


βš™οΈ Extra Features

  • User Privacy and Data Security: Secure user data with privacy measures like jwt and encryption for passwords.
  • Wishlists:enables users to save items they’re interested in.
  • External Api integration: for getting current address of the user and another one for zego cloud for virsual meetings(justfor front end),Strip payment Api.
  • User Messaging System:allows users to communicate within the platform, with fields for sender, receiver with front end added.
  • Coupons and Discounts: promotional codes with start and end dates for discount validity, allowing the platform to offer discounts to active users.
  • Notification System: Enables renters to send rental requests to owners, who can then accept or deny the requests in real-time.

    ⬆️ Top


🌟 Roles

The RentItOut platform has three primary user roles, each with specific permissions:

1. Admin

  • Overview: The Admin role is responsible for overseeing platform operations and ensuring the smooth management of users, coupons, and rentals.
  • Permissions:
    • Admins can create, update, and delete coupons.
    • Monitor rental activities,
    • Manage user accounts.

2. Owner

  • Overview: Owners are users who list items for rent on the platform.
  • Permissions:
    • Control over the items they rent out.
    • Manage insurance options for those items.
    • Owners can respond to rental requests and impose fees if renters return items late.

3. Renter

  • Overview: Renters are users who browse and rent items listed by owners.
  • Permissions:
    • They can manage their deliveries.
    • Leave reviews for both rentals and other users.
    • Save items to their wishlist.

4. Owner-Renter

  • Overview:This role is ideal for users who want to fully participate in the platform's ecosystem, both as providers and consumers of rental services.

This structure ensures a secure and efficient rental process for all users.

⬆️ Top


πŸ› οΈ Tools

This project was developed using the following technologies:

  • Node.js
    A JavaScript runtime built on Chrome's V8 JavaScript engine.
  • Express
    A minimal and flexible Node.js web application framework.
  • Postman
    A collaboration platform for designing, testing, and documenting APIs.
  • MySQL
    An open-source relational database management system.
  • GitHub
    A web-based platform for version control and collaboration using Git.
  • Flutter
    A responsive cross platform for building an app or website.

⬆️ Top


πŸš€ Getting Started

βš™οΈ Prerequisites

Before you begin, ensure you have the following installed:

To get started with the project:


⚑ Clone the repository:

Github

git clone https://github.com/leenfhd/rentItOut-
cd rentItOut-

πŸ”§ Configure the Database

  1. Create a new MySQL database for the project.
  2. Update the database configurations in the .env file (or equivalent) with your database credentials:
DB_HOST=localhost
DB_USER=your_username
DB_PASSWORD=your_password
DB_NAME=your_database_name

πŸš€ Run the Backend

Navigate to the project directory and install the dependencies:

cd RentItOut
npm install

Then start the backend server:

npm start

🌐 Access the Application

Once the backend server is running, you can access the application at http://localhost:3000 (or the configured port).

⬆️ Top


πŸ“„ API Documentation

The API is thoroughly documented using Postman. Access the full documentation by clicking the link below, which provides detailed information about all available endpoints, request parameters, response formats, and example requests and responses.


⬆️ Top



πŸŽ₯ Demo

Check out our project demo to see RentItOut in action! Click the link below to experience the functionality and features firsthand:

πŸš€ View Demo

Feel free to explore the interface, features, and overall user experience. Your feedback is highly appreciated!

(⬆️ Back to top)

πŸ“« Contact

For questions or feedback, please reach out to our team:

We appreciate your input and are always looking to improve!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors