An open API service indexing awesome lists of open source software.

https://github.com/apolo-itnet/nest-buddy-client

Roommate Finder is a full-stack web application that helps users find compatible roommates based on location, budget, and lifestyle preferences. It features authentication, post creation, liking to reveal contact info, and a responsive UI with modern animations.
https://github.com/apolo-itnet/nest-buddy-client

expressjs firebase-auth mongodb nodejs react-router reactjs tailwindcss vercel

Last synced: 2 months ago
JSON representation

Roommate Finder is a full-stack web application that helps users find compatible roommates based on location, budget, and lifestyle preferences. It features authentication, post creation, liking to reveal contact info, and a responsive UI with modern animations.

Awesome Lists containing this project

README

          

# ๐Ÿ  Roommate Finder

A modern full-stack platform to help individuals find compatible roommates based on location, budget, lifestyle preferences, and interests.

---

## ๐ŸŒ Live Links

๐Ÿ”— **Live Website**: https://roommate-finder-8c107.web.app

๐Ÿ”— **Client GitHub**: https://github.com/apolo-itnet/Nest-Buddy-Client.git

๐Ÿ”— **Server GitHub**: https://github.com/apolo-itnet/Nest-Buddy-Server

---

## ๐Ÿงช How to Run Locally

> Make sure you have **Node.js**, **MongoDB**, and **npm** installed.

### 1. Clone & Run the Client

```bash
git clone https://github.com/your-username/roommate-finder-client.git
cd roommate-finder-client
npm install
npm run dev
```

### 2. Clone & Run the Server

```bash
git clone https://github.com/your-username/roommate-finder-server.git
cd roommate-finder-server
npm install
npm start
```

### 3. Setup .env Files
Set environment variables in both client and server based on the examples below:

**1. Client .env**
```
VITE_API_URL=http://localhost:5000
VITE_FIREBASE_API_KEY=your_firebase_api_key
VITE_FIREBASE_AUTH_DOMAIN=your_project.firebaseapp.com
VITE_FIREBASE_PROJECT_ID=your_project_id
VITE_FIREBASE_APP_ID=your_app_id
```
**2. Server .env**
```
PORT=5000
MONGODB_URI=mongodb+srv://:@cluster.mongodb.net/roommateDB
JWT_SECRET=your_secret_key
```

---
### โœจ Key Features
- ๐Ÿ” User Authentication : Email/password & Google login using Firebase Auth.
- ๐Ÿ“ Add/Edit/Delete Posts : Authenticated users can manage their own roommate listings.
- ๐Ÿ“„ Browse Listings: See all active roommate requests in a searchable, filterable table.
- โค๏ธ Like & Reveal: Like posts to reveal the contact info (disabled for own posts).
- ๐ŸŒ™ Theme Toggle: Smooth switch between light & dark themes.
- ๐ŸŽจ Modern UI: TailwindCSS + DaisyUI powered responsive UI for all devices.
- ๐Ÿ”’ Protected Routes: Only logged-in users can access certain pages.
- ๐Ÿ”ฅ Real-time Feedback: Success and error messages via Toast & SweetAlert.
- ๐Ÿ’ฌ Lottie & Typewriter Effects: For a more engaging UI.
- ๐Ÿงญ 404 & Loader States: Custom not-found and loading pages for better UX.

---
### ๐Ÿ“ฆ Installed Packages

Client:


  • react

  • react-router-dom

  • firebase

  • axios

  • tailwindcss, daisyui, aos, swiper

  • react-toastify, react-icons, sweetalert2

  • lottie-react, typewriter-effect
  • Server:


  • express

  • cors

  • dotenv

  • mongoose

  • jsonwebtoken

  • cookie-parser
  • ---
    ### ๐Ÿ” Environment Variables
    **

    Client:

    **

    ```
    VITE_FIREBASE_API_KEY=your-key
    VITE_FIREBASE_AUTH_DOMAIN=your-domain
    ```
    **

    Server:

    **

    ```
    DB_USER=yourMongoUser
    DB_PASS=yourMongoPass
    ```
    ---
    ### ๐Ÿš€ Notable Routes
    | Route | Description | Protected |
    | --------------------- | ------------------------------------ | --------- |
    | `/` | Home Page with hero slider | โŒ |
    | `/login`, `/register` | Auth pages | โŒ |
    | `/add-roommate` | Add new listing | โœ… |
    | `/my-listings` | View & manage own listings | โœ… |
    | `/details/:id` | Roommate post detail view | โœ… |
    | `/like/:id` | Like functionality with reveal logic | โœ… |

    ---
    ### โœ๏ธ CRUD Features
    **โœ… Create** : Add a new roommate post.

    **โœ… Read** : View all public posts & individual details.

    **โœ… Update** : Edit own posts only.

    **โœ… Delete** : Delete your own roommate listing.

    ---
    ### ๐Ÿ“ Extra Notes
    - Users **cannot like** their own posts.

    - **Contact numbers reveal** only after liking a post.

    - Proper routing ensures **no page refresh issues.**

    - **Password validations** include uppercase, symbol, and length checks.

    ---
    ### ๐Ÿ’ก Inspiration
    This project was inspired by real-world roommate-finding struggles.

    The goal was to create a clean, secure, and efficient platform that helps people quickly connect with compatible roommates.

    ---
    ### ๐Ÿ“ฌ Submission
    This project is submitted as part of Assignment-10 of the MERN Stack Developer Course.

    ---
    ### ๐Ÿ‘จโ€๐Ÿ’ป Developer Info
    **Apolo Barua Apurbo**

    ๐Ÿ’ผ MERN Stack Web Developer

    ๐Ÿ“ง **Email**: apolo.itnet@gmail.com.com

    ๐Ÿ“ **Location**: Bangladesh