
Room4Me is a apartment rental and sharing platform designed specifically for university students. Developed during Java programming courses at college, it provides a complete digital solution for students seeking affordable housing options and roommate connections.

Contents
💡 Project Overview
Room4Me addresses the critical housing challenges faced by university students, particularly those studying away from home. The platform simplifies the process of finding affordable accommodation and connecting with potential roommates, creating a supportive community for student housing needs. With its user-friendly interface and comprehensive search capabilities, Room4Me bridges the gap between students seeking housing and those offering shared living spaces.
🛠️ Technologies
Built with:
🚀 Getting Started
Prerequisites
Before running the application, ensure the following tools are installed on your system:
Note: Project dependencies (JavaFX, PostgreSQL driver, and Java-dotenv) are already included in the project structure.
Installation & Setup
# Clone the repository
$ git clone https://github.com/RiadOliveira/Room4Me.git
# Navigate to project directory
$ cd Room4Me
# Environment Configuration
# Create and configure your .env file with database password
$ cp .env.example .env
# Configure your PostgreSQL database password in the .env file
# Update the following variable:
# DATABASE_PASSWORD=your_postgres_password
# Create the database in PostgreSQL
# Connect to PostgreSQL and create the database:
# CREATE DATABASE Room4ME;
# Compile the application and copy FXML views to the bin directory
javac --module-path lib/javafx-sdk-* --add-modules javafx.controls,javafx.fxml -cp "lib/*:lib/javafx-sdk-*/*" -d bin $(find src -name "*.java") && cp -r src/view/images src/view/screens bin/view/
# Run the application
java --module-path lib/javafx-sdk-* --add-modules javafx.controls,javafx.fxml -cp "bin:lib/*:lib/javafx-sdk-*/*" view.MainScreen
⚙️ Features
- Complete User Management - Full account lifecycle including registration, profile updates, and secure authentication with password encryption.
- Advanced Search System - Multi-criteria apartment search with filters for location, price range, bedroom quantity, capacity, gender preferences, and sharing availability.
- Property Management - Comprehensive CRUD operations for apartment listings with detailed information management and image handling.
- Contact Integration - Direct access to property owner contact information for seamless communication between students.
- Data Export Capabilities - Generate CSV reports containing all searched apartments with complete property details for offline analysis.
- Gender-Based Filtering - Specialized search options to accommodate gender-specific housing preferences and requirements.
- Sharing Options - Dedicated features for students looking to share apartments with roommates or find individual accommodations.
🗃️ Database Entities
User
- id: UUID
- name: string
- email: string
- password: string
- phone_number: string
- avatar: string - Profile picture filename
- gender: integer - Gender identifier (0: Male, 1: Female, 2: Other)
Address
- id: UUID
- city: string
- district: string
- street: string
- complement: string/null
- apartment_number: string
- zip_code: integer
Aspects
- id: UUID
- bedrooms_quantity: integer
- available_to_divide: boolean
- description: text
- capacity: integer
- allowed_gender: smallint - Gender restrictions (0: Male only, 1: Female only, 2: Mixed)
Apartment
- id: UUID
- owner: UUID
- address: UUID
- aspects: UUID
- rent: double
- image: string
🏗️ Architecture
Room4Me follows the Model-View-Controller (MVC) architectural pattern, ensuring clean separation of concerns and maintainable code structure. The application leverages JavaFX for the presentation layer, JDBC for data persistence, and implements robust business logic through well-defined service layers.
📷 Application Screenshots
Authentication

User Registration

Apartment Search

Apartment Details

Property Management

Apartment Registration


-
Registration Finalization

📝 License
This project is MIT Licensed. See
LICENSE file for more details.
👨💻 Authors
Ríad Oliveira
Davi Emanuel
Isabele Cristina