Rentify is a web application designed to simplify the rental process for both property owners and tenants.
In the post-pandemic world, the demand for real estate has surged, especially in cities with high populations and IT offices. RENTIFY aims to bridge the gap between property owners and tenants by providing a platform where they can easily connect based on their requirements.
- Frontend : Vite, Redux Toolkit, React JS, Tailwind CSS
- Backend : Java, Maven, Spring Boot, REST-APIs, MySQL Database
- Additional Packages : Axios, Animate.CSS, Yup, Formik, Toastify, Skeleton, Swiper, Cloudinary
- Home: Landing page which gives overview about the company, milestones, awards and testimonials.
- About : About us page displays company details and services.
- PropertyList: Shows a list of available properties.
- PropertyDetails: Displays additional information of a property.
- MyProfile: Displays user's profile information, also allows users to edit details.
- MyPropertyList: Lists properties added by the user.
- Error: 404 Error page for invalid paths.
- LoginPage: User login form.
- Sign In: User Sign in form.
- AddProperty: Form to add a new property.
- UpdateProperty: Form to update the property details.
- Controller Layer: Handles HTTP requests and responses.
- Service Layer: Contains business logic.
- Repository Layer: Interacts with the database.
- Configuration: Contains Spring Boot configuration and Cors Configuration.
- Sign in: Users can sign in with their details.
- Login: Users can log in to the application.
- Logout: Users can log out from the application.
- Edit Details: Users can edit their details (name, city).
- Add Property: Logged-in users can add a new property.
- Search Properties: Allows user to search property by name, city, state or country.
- View Properties: All users can view the list of available properties.
- View Property Details: Logged-in users can view detailed information about a property.
- My Properties: Logged-in users can view, update, and delete their properties.
- Pagination: Properties are fetched all at once and displayed in a paginated view, ensuring efficient navigation through large lists of properties.
- GET : /user/id: Get user details by userId.
- POST: /user/check-email : Check user already exists.
- POST : /user/signin: Sign in a user.
- POST : /user/login: Log in a user.
- PUT : /user: Update user details.
- POST : /properties: Add a new property.
- GET : /properties/latest-properties: Get recent listing by date
- GET : /properties: Get all properties.
- GET : /properties/{pid}: Get property details.
- GET : /properties/{id}: Get propeties of user.
- PUT : /properties: Update property details.
- DELETE : /properties/{id}: Delete a property.
RentifyClient
├─── public
├─── src
│ ├── Assets
│ ├── Components
│ │ ├── Footer.jsx
│ │ ├── ImageUploader.jsx
│ │ ├── Navbar.jsx
│ │ ├── Pagination.jsx
│ │ ├── PropertyCard.jsx
│ │ ├── PropertyCard2.jsx
│ │ ├── PropertySearch.jsx
│ │ ├── ShimmerCard.jsx
│ │ ├── PropertyDetailsShimmer.jsx
│ │ ├── Testimonials.jsx
│ ├── Pages
│ │ ├── Forms
│ │ ├── LoginUser.jsx
│ │ ├── SignIn.jsx
│ │ ├── AddProperty.jsx
│ │ ├── UpdateProperty.jsx
│ │ ├── About.jsx
│ │ ├── Home.jsx
│ │ ├── Error.jsx
│ │ ├── MyProertyList.jsx
│ │ ├── MyProfile.jsx
│ │ ├── PropertyDetails.jsx
│ │ ├── PropertyList.jsx
│ │
│ ├── Redux
│ | ├── Reducers
│ | │ ├── uerSlice.jsx
| | ├── redux-store.jsx
│ ├── Services
│ | ├── Constants.jsx
│ | ├── DeleteAsset.jsx
│ | ├── Endpoints.jsx
│ | ├── Icons.jsx
│ ├── custom.css
│ ├── index.css
│ ├── index.jsx
│ ├── Main.jsx
│
├─── .env
├─── .gitignore
├─── index.html
├─── package.json
├─── package-lock.json
├─── postcss.config.js
├─── tailwind.config.js
├─── vite.config.js
- Navigate to the frontend directory
- Install dependencies
- Run the frontend
Execute these commands one by one :
cd RentifyClient
npm install
npm start
RentifyServer
├── src
│ ├── main
│ │ ├── java
│ │ │ ├── in
│ │ │ │ ├── rentify
│ │ │ │ │ ├── RentifyServerApplication.java
│ │ │ │ │ ├── ServletInitializer.java
│ │ │ │ │ ├── config
│ │ │ │ │ │ ├── CorsConfig.java
│ │ │ │ │ │ ├── SecurityConfig.java
│ │ │ │ │ ├── controller
│ │ │ │ │ │ ├── PropertyController.java
│ │ │ │ │ │ ├── UserController.java
│ │ │ │ │ ├── dao
│ │ │ │ │ │ ├── AdditionalDetailsRepository.java
│ │ │ │ │ │ ├── PropertyRepository.java
│ │ │ │ │ │ ├── UserRepository.java
│ │ │ │ │ ├── dto
│ │ │ │ │ │ ├── LoginDetails.java
│ │ │ │ │ │ ├── UserDTO.java
│ │ │ │ │ ├── model
│ │ │ │ │ │ ├── AdditionalDetails.java
│ │ │ │ │ │ ├── Property.java
│ │ │ │ │ │ ├── User.java
│ │ │ │ │ ├── service
│ │ │ │ │ ├── PropertyService.java
│ │ │ │ │ ├── UserService.java
│ │ ├── resources
│ │ │ ├── application.properties
│ │ │ ├── static
│ │ │ ├── templates
│ │ ├── webapp
│ ├── test
│ │ ├── java
│ │ ├── resources
- Clone the repository
git clone https://github.com/your-repo/rentify.git
cd RentifyServer
- Set up the database: Create a MySQL database named rentify.
- Update the database configuration in
application.properties
file. - Build and run the backend
mvn clean install
mvn spring-boot:run
Contributions are welcome! If you have any suggestions, improvements, or would like to contribute to any of the projects, feel free to open an issue or submit a pull request.