Peer-to-Peer Rental Platform for Everyday Items - Easy Renting for many needs!
This project is actively maintained and open for contributions. Check out the documentation for more details!
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.
- Item Listings for Rent: Users can post items they own but rarely used, categorized by item type (e.g., tools, electronics).
- Rental Management and Pricing: Manage rental durations, pricing models, and flexible rental periods.
- Trust, Safety, and Verification: Implement user verification and ratings to promote safe transactions.
- Logistics: Options for delivery pickup, supported by a location-based external api.
- Revenue Model and Insurance: Generate revenue through platform fees, and provide insurance options for item protection.
- User Experience and Recommendations: Enhance the user experience with personalized recommendations.
- 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.
The RentItOut platform has three primary user roles, each with specific permissions:
- 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.
- 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.
- 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.
- 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.
This project was developed using the following technologies:
A JavaScript runtime built on Chrome's V8 JavaScript engine.
A minimal and flexible Node.js web application framework.
A collaboration platform for designing, testing, and documenting APIs.
An open-source relational database management system.
A web-based platform for version control and collaboration using Git.
A responsive cross platform for building an app or website.
Before you begin, ensure you have the following installed:
git clone https://github.com/leenfhd/rentItOut- cd rentItOut-
- Create a new MySQL database for the project.
- 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
Navigate to the project directory and install the dependencies:
cd RentItOut npm install
Then start the backend server:
npm start
Once the backend server is running, you can access the application at http://localhost:3000 (or the configured port).
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.
Check out our project demo to see RentItOut in action! Click the link below to experience the functionality and features firsthand:
Feel free to explore the interface, features, and overall user experience. Your feedback is highly appreciated!
For questions or feedback, please reach out to our team:
- Leen Fahed - [email protected]
- Marah Qadi - [email protected]
- Marah Shakhsheer - [email protected]
- Raghad Mustafa - [email protected]
We appreciate your input and are always looking to improve!