RoomBuddy is a dynamic web platform designed to help individuals find compatible roommates and rental listings based on their city and preferences. With real-time listings, secure authentication, and an intuitive interface, RoomBuddy simplifies the process of connecting people looking for shared accommodations.
- Project Overview
- Technologies Used
- Folder Structure
- Spring Boot Initializer Configuration
- Implementation Guide
- Problem Statement and Solution
- Live Demo
- Contributing
- Acknowledgements
Finding a compatible roommate can be a challenging task. RoomBuddy aims to streamline this process by providing a platform where users can:
- Search Listings by City: Filter available rooms and roommates effortlessly.
- Post & Manage Room Listings: List your available space with details like rent and contact info.
- Secure Login & Registration: Authenticate users safely with password recovery options.
- Interactive UI: A clean and responsive design using Bootstrap.
- Real-time Data Fetching: Fast and efficient updates with dynamic search functionality.
- Contact Room Owners: Easily get in touch with potential roommates.
- HTML5
- CSS3
- JavaScript
- Bootstrap 5
- Java
- Spring Boot
- JDBC
- MySQL
- GitHub
RoomBuddy/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── roombuddy/
│ │ │ ├── config/
│ │ │ ├── controller/
│ │ │ ├── dto/
│ │ │ ├── entity/
│ │ │ ├── repository/
│ │ │ └── service/
│ │ ├── resources/
│ │ ├── static/
│ │ └── application.properties
│ └── test/
├── .gitignore
├── HELP.md
├── LICENSE
├── mvnw
├── mvnw.cmd
├── pom.xml
└── README.md
config/
: Contains configuration classes such as security configurations, and any custom beans used in the application.controller/
: Contains the REST controllers handling HTTP requests.dto/
: Contains Data Transfer Objects (DTOs) that are used to transfer data between layers (e.g., between controllers and services) without exposing the full entity models.entity/
: Contains the data models representing entities.repository/
: Contains the data access logic.service/
: Contains the business logic.static/
: Contains static assets like CSS, JavaScript, and images.application.properties
: Configuration properties for the application.
The project was initialized using Spring Initializr with the following settings:
- Project: Maven Project
- Language: Java
- Spring Boot: 2.5.4
- Packaging: Jar
- Java: 11
- Spring Web
- Spring Data JPA
- MySQL Driver
- Spring Security
To set up and run the RoomBuddy project locally:
git clone https://github.com/NirmalsaiswaroopJ/RoomBuddy-JFS-Real-Time-Project.git
cd RoomBuddy-JFS-Real-Time-Project
- Ensure you have MySQL installed and running.
- Create a database named
roombuddy
. - Update the
application.properties
file with your database credentials:
spring.datasource.url=jdbc:mysql://localhost:3306/roombuddy
spring.datasource.username=your_username
spring.datasource.password=your_password
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true
Run the following commands to build and start the application:
./mvnw clean install
./mvnw spring-boot:run
Once the application is running, navigate to:
http://localhost:8080
in your browser.
Finding a compatible roommate can be time-consuming and challenging, often involving multiple platforms and manual searches.
RoomBuddy addresses this issue by providing a centralized platform where users can:
- 🔍 Search for available rooms in their desired city.
- 🏠 Post listings for available rooms with detailed information.
- 📞 Connect with potential roommates through provided contact information.
- ⚙️ Manage their listings and profiles through a user-friendly interface.
This streamlined approach saves time and increases the chances of finding a suitable living arrangement.
Static Webpage - [https://roombuddyjfs.netlify.app/]
Note: Only showcased to understand the navigation and web application workflow.
Thank you for considering contributing to RoomBuddy! 🎉
I welcome suggestions, bug reports, and pull requests.
- Fork the repository.
- Create a new branch:
git checkout -b feature/YourFeature
- Commit your changes:
git commit -m "Add YourFeature"
- Push to the branch:
git push origin feature/YourFeature
- Open a Pull Request. Please ensure your code adheres to the existing code style and includes relevant tests
Thank you for exploring RoomBuddy! 🚀
I hope this platform assists you in finding the perfect roommate.
If you have any suggestions or feedback, feel free to reach out or open an issue on GitHub. 😊