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.
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.
- 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
- Add New Property Listings
- Upload Multiple Property Images
- Update Property Information
- Delete Property Listings
- Manage Personal Property Listings
- Communicate with Interested Tenants
- Search Properties by Location
- Filter by Property Type
- Filter by Price Range
- Filter by Availability
- 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
- Flutter
- Dart
- Material Design
- Node.js
- Express.js
- Socket.IO
- MongoDB
- Mongoose
- Git & GitHub
- Postman
- Visual Studio Code
- Android Studio
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
git clone https://github.com/Technozamazing/Sajilo-Rent.git
cd Sajilo-RentNavigate to the backend directory:
cd BackendInstall the required dependencies:
npm installCreate 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=7dStart the development server:
npm run devAlternatively, depending on your package.json configuration:
npm startThe backend server will run on:
http://localhost:5000
Open a new terminal and navigate to the frontend directory:
cd FRONTENEDInstall Flutter dependencies:
flutter pub getRun the application:
flutter runMake sure your backend server is running before using features that require API access.
Sajilo Rent provides authentication features for users, including:
- User Registration
- User Login
- Secure JWT Authentication
- Password Encryption
- Protected API Routes
- Profile 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
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
Users can save properties to their favorites for quick access later.
This allows users to easily keep track of properties they are interested in.
{
"name": "String",
"email": "String",
"password": "String",
"phone": "String"
}{
"title": "String",
"description": "String",
"propertyType": "String",
"price": "Number",
"location": "String",
"images": ["String"],
"availability": "Boolean",
"owner": "User ID"
}{
"tenantId": "User ID",
"ownerId": "User ID",
"propertyId": "Property ID",
"lastMessage": "String"
}{
"conversationId": "Conversation ID",
"senderId": "User ID",
"senderRole": "String",
"text": "String",
"createdAt": "Date"
}| Login Screen | Register Screen | Forgot Password |
|---|---|---|
![]() |
![]() |
![]() |
| Home Screen | Property Details | Favorites |
|---|---|---|
![]() |
![]() |
![]() |
| Add Property | My Properties | Profile |
|---|---|---|
![]() |
![]() |
![]() |
| Chat Screen |
|---|
![]() |
The following video demonstrates the main features and workflow of the Sajilo Rent application.
Note: GitHub may not play
.mp4files 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.
- JWT Authentication
- Password Encryption
- Protected Routes
- Input Validation
- Authentication Middleware
- Secure API Access
- 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
Project Name: Sajilo Rent
Developers:
- Roman Shrestha
- Madhav Tharu
Technology: Flutter, Node.js, Express.js, MongoDB, and Socket.IO
Contributions, suggestions, and improvements are welcome.
- Fork the repository.
- Create a new feature branch.
git checkout -b feature/your-feature-name- Make your changes and commit them.
git commit -m "Add your feature"- Push your branch.
git push origin feature/your-feature-name- Create a Pull Request.
This project was developed for educational and academic purposes.
If you like this project, consider giving the repository a star β.










