PropertyHub is a property listing platform designed to help users find and manage real estate listings with ease. Users can search for properties using various filters such as location, price, and type, and they can also authenticate securely to save their favorite properties or list their own.
- Location-Based Search: Users can find properties based on their geographical location.
- Advanced Filtering: Narrow down results by price, property type, and other criteria.
- User Authentication: Secure login and registration using authentication mechanisms.
- Personalized Dashboard: Users can save favorite properties, manage personal listings, and update preferences.
- Responsive Design: Optimized for both desktop and mobile users.
- Frontend: HTML, CSS, JavaScript
- Backend: Node.js, Express.js
- Database: MySQL
- Authentication: JSON Web Tokens (JWT)
- Other Tools: Docker (optional), Postman (for API testing)
-
Clone the repository:
git clone https://github.com/yourusername/PropertyHub.git cd PropertyHub
-
Install dependencies:
npm install
-
Set up environment variables: Create a
.env
file in the root directory and add the following:DB_HOST=your_mysql_host DB_USER=your_mysql_user DB_PASS=your_mysql_password DB_NAME=propertyhub JWT_SECRET=your_secret_key
-
Initialize the MySQL database:
CREATE DATABASE propertyhub;
-
Start the application:
npm start
The app will be accessible at
http://localhost:3000
.
- After starting the app, visit the homepage where you can search for properties using various filters.
- You can register an account to save your favorite properties or list your own.
The MySQL database schema consists of the following tables:
- Users: Stores user account details (name, email, password).
- Properties: Stores property listings (title, description, price, location, owner).
- Favorites: Tracks users' saved properties.
For the detailed schema, refer to the /database/schema.sql
file.
Contributions are welcome! To contribute:
- Fork the repository.
- Create a feature branch (
git checkout -b feature/YourFeature
). - Commit your changes (
git commit -m 'Add new feature'
). - Push to the branch (
git push origin feature/YourFeature
). - Open a pull request.
This project is licensed under the MIT License - see the LICENSE file for details.