RF_8
RF_8
Project Goal: The Rentify project aims to create an innovative platform for renting items,
contributing to the development of the sharing economy in Kazakhstan. The platform will
provide users with the ability to rent and lease items through a user-friendly interface,
utilizing advanced technologies such as an AI-based recommendation system and
gamification of the rental process. The platform will focus on creating a secure and
convenient environment for users, ensuring effective interaction between renters and lessors.
Project Tasks:
Functional Requirements:
User Interface:
o Both mobile and web applications must provide the ability to register, search
for products, make rentals, exchange messages, and leave reviews.
o The interface should be intuitive, focusing on ease of use and navigation
simplicity.
o Product filtering functionality based on categories, price, rating, and location.
Recommendation System:
o The recommendation system will offer products based on the user's
preferences and interaction with the platform.
Rental Gamification:
o The product selection process will be simplified using visual elements like
product cards with swipe functionality to make renting more engaging and
intuitive.
Chat and Review System:
o A built-in platform for communication between users to agree on rental terms,
as well as leave reviews and ratings for lessors and renters.
Security:
o Implementation of two-factor authentication for users.
o Secure transmission of data and storage of payment, rental, and personal data.
2. Physical Model Description
Mobile Application (Flutter): The app will provide an interface for users on mobile
devices supporting both Android and iOS platforms. This will allow users to search
for products, make rentals, exchange messages, and receive notifications. The app
will use a single codebase for both platforms, simplifying development and
maintenance.
Web Application (Vue.js): The web version of the project will be intended for users
working through a browser. It will provide access to the same features as the mobile
application and allow interaction with the platform from any device.
Backend (Java Spring Boot): The server will handle user requests, manage the
database, and integrate with payment gateways. The backend will implement all
business logic and APIs for the mobile and web applications.
Database (PostgreSQL): Data about users, products, rentals, and transactions will be
stored in a relational PostgreSQL database. This will allow efficient storage of related
data and complex query execution.
Caching (Redis): Redis will be used to cache frequently requested data, such as
search results and user profiles, improving response time and system performance.
Containerization and CI/CD (Docker, GitLab): Docker will be used to containerize
all services, simplifying deployment and infrastructure management. GitLab will be
used to automate CI/CD processes, enabling faster and higher-quality development,
testing, and deployment of new features.
Scaling and Orchestration (Kubernetes): Kubernetes will be used for scaling and
container management under heavy loads.
Secrets and Security (Vault): Vault will be used to securely store sensitive data such
as API keys, passwords, and other secrets, ensuring data and integration security with
external services.