Skip to content

Latest commit

Β 

History

63 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

SajiloRent_Logo

🏠 Sajilo Rent - Find Your Desired Home

Sajilo Rent is a full-stack rental platform developed using Flutter for the frontend and Node.js, Express.js, and MongoDB for the backend.

The application helps tenants find suitable rooms, apartments, and houses while allowing property owners to easily add, manage, update, and remove their property listings.


πŸ“± Project Overview

Finding a suitable rental room or house can be challenging and time-consuming. Sajilo Rent simplifies this process by providing a centralized platform where users can browse available properties, search by location, view detailed property information, communicate with property owners, save favorite listings, and manage their profiles.

Property owners can add new properties, upload images, update property details, manage their listings, and communicate with interested tenants.


πŸš€ Features

πŸ‘€ User Features

  • User Registration and Login
  • Secure Authentication using JWT
  • Browse Available Rooms and Houses
  • Search Properties by Location
  • View Detailed Property Information
  • Save Favorite Properties
  • Contact Property Owners
  • Real-Time Chat System
  • User Profile Management

🏠 Property Owner Features

  • Add New Property Listings
  • Upload Multiple Property Images
  • Update Property Information
  • Delete Property Listings
  • Manage Personal Property Listings
  • Communicate with Interested Tenants

πŸ” Search and Filtering

  • Search Properties by Location
  • Filter by Property Type
  • Filter by Price Range
  • Filter by Availability

πŸ“ Additional Features

  • Responsive and Modern User Interface
  • Real-Time Data Management
  • Image Upload Support
  • Location-Based Property Search
  • Property Favorites
  • User-to-User Chat System
  • Role-Based Features for Tenants and Property Owners

πŸ› οΈ Technology Stack

πŸ“± Frontend

  • Flutter
  • Dart
  • Material Design

βš™οΈ Backend

  • Node.js
  • Express.js
  • Socket.IO

πŸ—„οΈ Database

  • MongoDB
  • Mongoose

🧰 Development Tools

  • Git & GitHub
  • Postman
  • Visual Studio Code
  • Android Studio

πŸ“‚ Project Structure

Sajilo-Rent/
β”‚
β”œβ”€β”€ FRONTENED/
β”‚   β”œβ”€β”€ lib/
β”‚   β”‚   β”œβ”€β”€ models/
β”‚   β”‚   β”œβ”€β”€ screens/
β”‚   β”‚   β”œβ”€β”€ services/
β”‚   β”‚   β”œβ”€β”€ widgets/
β”‚   β”‚   └── main.dart
β”‚   β”‚
β”‚   β”œβ”€β”€ assets/
β”‚   └── pubspec.yaml
β”‚
β”œβ”€β”€ Backend/
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ config/
β”‚   β”‚   β”œβ”€β”€ controllers/
β”‚   β”‚   β”œβ”€β”€ middleware/
β”‚   β”‚   β”œβ”€β”€ models/
β”‚   β”‚   β”œβ”€β”€ routes/
β”‚   β”‚   β”œβ”€β”€ services/
β”‚   β”‚   β”œβ”€β”€ utils/
β”‚   β”‚   └── server.js
β”‚   β”‚
β”‚   β”œβ”€β”€ uploads/
β”‚   β”œβ”€β”€ package.json
β”‚   └── .env
β”‚
β”œβ”€β”€ docs/
β”‚   β”œβ”€β”€ images/
β”‚   └── videos/
β”‚
└── README.md

βš™οΈ Installation Guide

1️⃣ Clone the Repository

git clone https://github.com/Technozamazing/Sajilo-Rent.git
cd Sajilo-Rent

2️⃣ Backend Setup

Navigate to the backend directory:

cd Backend

Install the required dependencies:

npm install

Create a .env file inside the Backend directory and add the required environment variables:

PORT=5000

MONGODB_URI=your_mongodb_connection_string

JWT_SECRET=your_secret_key
JWT_EXPIRES_IN=7d

Start the development server:

npm run dev

Alternatively, depending on your package.json configuration:

npm start

The backend server will run on:

http://localhost:5000

3️⃣ Flutter Frontend Setup

Open a new terminal and navigate to the frontend directory:

cd FRONTENED

Install Flutter dependencies:

flutter pub get

Run the application:

flutter run

Make sure your backend server is running before using features that require API access.


πŸ” Authentication

Sajilo Rent provides authentication features for users, including:

  • User Registration
  • User Login
  • Secure JWT Authentication
  • Password Encryption
  • Protected API Routes
  • Profile Management

🏠 Property Management

Property owners can:

  • Add new properties
  • Upload property images
  • Add property details
  • Update existing properties
  • Delete properties
  • View their own property listings

Each property can contain information such as:

  • Property Title
  • Description
  • Property Type
  • Price
  • Location
  • Images
  • Availability
  • Owner Information
  • Contact Information

πŸ’¬ Chat System

The application includes a chat system that allows tenants and property owners to communicate directly.

Features include:

  • Create conversations between tenants and property owners
  • Send and receive messages
  • Real-time messaging using Socket.IO
  • View conversation history
  • Display sender information
  • Manage conversations

❀️ Favorites

Users can save properties to their favorites for quick access later.

This allows users to easily keep track of properties they are interested in.


πŸ“Š Database Models

πŸ‘€ User

{
  "name": "String",
  "email": "String",
  "password": "String",
  "phone": "String"
}

🏠 Property

{
  "title": "String",
  "description": "String",
  "propertyType": "String",
  "price": "Number",
  "location": "String",
  "images": ["String"],
  "availability": "Boolean",
  "owner": "User ID"
}

πŸ’¬ Conversation

{
  "tenantId": "User ID",
  "ownerId": "User ID",
  "propertyId": "Property ID",
  "lastMessage": "String"
}

πŸ“¨ Message

{
  "conversationId": "Conversation ID",
  "senderId": "User ID",
  "senderRole": "String",
  "text": "String",
  "createdAt": "Date"
}

πŸ“Έ App Screenshots

πŸ” Authentication

Login Screen Register Screen Forgot Password

🏠 Property Browsing

Home Screen Property Details Favorites

🏑 Property Management

Add Property My Properties Profile

πŸ’¬ Communication

Chat Screen

πŸŽ₯ App Demonstration

The following video demonstrates the main features and workflow of the Sajilo Rent application.

▢️ Watch Sajilo Rent Demo Video

Note: GitHub may not play .mp4 files directly inside a README. If the video does not open properly, you can upload the demonstration video to YouTube, Google Drive, or another supported platform and add its link here.


πŸ”’ Security Features

  • JWT Authentication
  • Password Encryption
  • Protected Routes
  • Input Validation
  • Authentication Middleware
  • Secure API Access

🎯 Future Enhancements

  • Google Maps Integration
  • Property Reviews and Ratings
  • Push Notifications
  • Online Payment Integration
  • AI-Based Property Recommendations
  • Multi-Language Support
  • Advanced Property Filtering
  • Improved Notification System

πŸ‘¨β€πŸ’» Development Team

Project Name: Sajilo Rent

Developers:

  • Roman Shrestha
  • Madhav Tharu

Technology: Flutter, Node.js, Express.js, MongoDB, and Socket.IO


🀝 Contribution

Contributions, suggestions, and improvements are welcome.

  1. Fork the repository.
  2. Create a new feature branch.
git checkout -b feature/your-feature-name
  1. Make your changes and commit them.
git commit -m "Add your feature"
  1. Push your branch.
git push origin feature/your-feature-name
  1. Create a Pull Request.

πŸ“„ License

This project was developed for educational and academic purposes.


⭐ Support

If you like this project, consider giving the repository a star ⭐.


Made with ❀️ using Flutter, Node.js, MongoDB, and Socket.IO

About

Full-stack rental marketplace built with Flutter, Node.js, Express, MongoDB, and Cloudinary featuring property listings, geo-filtering, and owner management.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages