DreamState is a real estate website that allows users to browse listings, create their listings, and connect with landlords. It provides manual sign-in/sign-up features, OAuth with Google, user profile management, and advanced search functionality.
-
Authentication
- Manual sign-in/sign-up
- Sign in using email through Google OAuth
-
Homepage Listings
- Multiple listings displayed with tags (e.g., offers, on sale, rent)
-
User Profile Management
- Update profile information (username, password)
- Upload a profile image
- Used JWT for user token authorization
-
Listing Creation
-
Advanced Search
-
Contact Landlord
- Users can contact the landlord of a site listing by:
- Clicking on the contact button
- Typing a message
- Redirecting to send an email
- Users can contact the landlord of a site listing by:
-
Frontend:
- React.js
- Redux Toolkit(for State management)
- Tailwind CSS
- React Icons Library
- Swiper Package (for adding Image swiper)
- Fetch API (for HTTP requests)
- React Router (for routing)
- Firebase Storage Bucket (to store images)
-
Backend:
- Node.js
- Express.js
- MongoDB (for database)
- Mongoose (for MongoDB object modeling)
- Google OAuth API (for authentication)
- JWT (for token Authorization)
- Clone the repository.
- Add the
.env
file in the root folder(MONGO_URI, PORT, JWT_SECRET) and in the client folder(VITE_FIREBASE_API_KEY) - Install dependencies using
npm install
in the root folder and the client folder. - Start the frontend and backend servers using
npm run dev
. - Access the application frontend at
http://localhost:5173
and backend API athttp://localhost:3000
.
Just to let you know, pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.