PropertEase is a comprehensive real estate management platform designed to simplify and streamline property listings, user management, and communication between buyers and sellers. The project is split into two main components: the frontend, built with React and SCSS, and the backend, powered by Node.js, Express, Prisma ORM, and MongoDB.
- Features
- Project Structure
- Tech Stack
- Getting Started
- Installation
- Running the Project
- API Endpoints
- Contributing
- License
- Property Listings: Manage property listings with detailed descriptions, pricing, and availability.
- User Authentication: Secure login and registration system with JSON Web Tokens (JWT).
- Responsive Design: Frontend built with React and SCSS to provide a mobile-first, responsive user experience.
- Database Management: Backend database operations managed with Prisma ORM and MongoDB.
The project is divided into two main directories:
-
Frontend: Contains the user interface components, styles, and views.
- React: Handles the dynamic UI with components and state management.
- SCSS: Manages custom styling for a clean, modern interface.
-
Backend: Manages the server-side functionality and API routes.
- Node.js: Provides the runtime environment for building server-side applications.
- Express: Handles the routing and server-side logic.
- Prisma ORM: Manages the database interactions with MongoDB.
- MongoDB: Stores the project’s data, such as users and property listings.
- React
- SCSS
- Node.js
- Express
- Prisma ORM
- MongoDB
- JSON Web Tokens (JWT) for authentication
Ensure you have the following installed:
- Node.js (v14 or higher)
- npm or yarn
- MongoDB (local or cloud-based)
-
Clone the repository:
git clone https://github.com/yourusername/propertease.git cd PropertEase
-
Navigate to the frontend and backend directories, and install the necessary dependencies.
cd frontend
npm install
cd backend
npm install
Set up the .env
file in the backend folder with the following variables:
PORT
- The port number (default: 3000)JWT_SECRET
- Your secret key for JWTDATABASE_URL
- MongoDB connection string
cd frontend
npm start
cd backend
npm run dev
The frontend will run on http://localhost:3000
and the backend on http://localhost:8800
.
Here are the major API routes for the backend:
-
User Routes:
- POST
/api/auth/register
- Register a new user. - POST
/api/auth/login
- Log in with username and password. - POST
/api/auth/logout
- Log out the user.
- POST
-
Property Routes:
- GET
/api/properties
- Get a list of properties. - POST
/api/properties
- Create a new property (Admin only). - DELETE
/api/properties/:id
- Delete a property (Admin only).
- GET
Feel free to contribute by submitting issues, feature requests, or pull requests.
- Fork the repository.
- Create a new branch (
git checkout -b feature-branch
). - Commit your changes (
git commit -am 'Add new feature'
). - Push to the branch (
git push origin feature-branch
). - Create a new Pull Request.
This project is licensed under the MIT License.