Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

5 Commits
Β 
Β 

Repository files navigation

DevForge – Developer Collaboration Platform πŸš€

DevForge is a full stack web application that helps developers and students connect, collaborate, and build projects together.

Many developers have great project ideas but struggle to find the right teammates. DevForge solves this problem by providing a platform where users can share project ideas, discover projects, and form teams based on skills and interests.


πŸ“Œ Problem Statement

Many students and beginner developers want to work on real-world projects but face several challenges:

  • Difficulty finding teammates with the right technical skills
  • Lack of a platform dedicated to developer collaboration
  • Difficulty managing project participation and team formation
  • Many project ideas remain incomplete due to lack of collaboration

Because of these challenges, developers often struggle to transform ideas into real working applications.


πŸ’‘ Solution

DevForge provides a centralized collaboration platform where developers can discover projects and connect with other developers.

The platform allows users to:

  • Create a developer profile
  • Post project ideas
  • Explore projects created by other developers
  • Search and filter projects based on skills and domain
  • Send requests to join project teams
  • Manage project collaborations through a personal dashboard

This enables developers to easily find teammates and build projects together.


πŸ›  Tech Stack

Frontend

  • ReactJS
  • Tailwind CSS
  • React Router
  • Context API
  • Fetch API

Backend

  • Node.js
  • Express.js
  • REST APIs

Database

  • MongoDB
  • Mongoose

Authentication

  • JWT (JSON Web Tokens)
  • bcryptjs for password hashing
  • Google Sign-In (OAuth)

πŸ“ Project Structure

dev_forge-main/
β”œβ”€β”€ Backend/
β”‚   β”œβ”€β”€ models/
β”‚   β”‚   └── User.js
β”‚   β”œβ”€β”€ routes/
β”‚   β”‚   β”œβ”€β”€ auth.js
β”‚   β”‚   └── test.js
β”‚   β”œβ”€β”€ middleware/
β”‚   β”‚   └── auth.js
β”‚   β”œβ”€β”€ server.js
β”‚   β”œβ”€β”€ .env
β”‚   └── package.json
β”‚
β”œβ”€β”€ Frontend/
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”‚   β”œβ”€β”€ ProtectedRoute.jsx
β”‚   β”‚   β”‚   └── GuestRoute.jsx
β”‚   β”‚   β”œβ”€β”€ context/
β”‚   β”‚   β”‚   └── AuthContext.jsx
β”‚   β”‚   β”œβ”€β”€ pages/
β”‚   β”‚   β”‚   β”œβ”€β”€ Login.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ Signup.jsx
β”‚   β”‚   β”‚   └── Dashboard.jsx
β”‚   β”‚   β”œβ”€β”€ App.jsx
β”‚   β”‚   └── main.jsx
β”‚   β”œβ”€β”€ tailwind.config.js
β”‚   └── package.json
β”‚
└── README.md

🚦 API Routes

Authentication Routes (/api/auth)

Method Endpoint Description Auth Required
POST /api/auth/signup Register a new user ❌
POST /api/auth/login Login with email & password ❌
POST /api/auth/google Sign in with Google ❌
GET /api/auth/me Get current logged-in user βœ…

Test Route

Method Endpoint Description Auth Required
GET /api/test Health check – verify server is running ❌

🌐 Frontend Routes

Path Component Access
/ Redirect β†’ /login Public
/login Login Page Guest only
/signup Signup Page Guest only
/dashboard Dashboard Authenticated only

πŸ” Authentication System

The application includes a JWT-based authentication system with:

  • Signup with name, email & password
  • Login with email & password
  • Sign in with Google (OAuth)
  • Protected routes for authenticated users
  • Guest-only routes for login & signup

Auth Flow

New User β†’ Opens App β†’ /login β†’ Clicks "Sign Up" β†’ /signup β†’ Creates Account β†’ /dashboard

Returning User β†’ Opens App β†’ Token found β†’ Auto redirect β†’ /dashboard

User Logs Out β†’ Token cleared β†’ Redirected to /login

How it works:

  • JWT tokens are generated on login/signup and stored in localStorage
  • Context API manages auth state across the app
  • ProtectedRoute component blocks unauthenticated access to dashboard
  • GuestRoute component redirects logged-in users away from login/signup

✨ Core Features

πŸ‘€ Developer Profiles

Users can create and manage their developer profile including:

  • Name
  • Email
  • College
  • Skills
  • Bio
  • GitHub profile
  • LinkedIn profile

πŸ“‚ Project Posting

Users can create projects by providing:

  • Project title
  • Project description
  • Required skills
  • Project domain (Web, AI, Mobile, etc.)
  • Team size
  • Project status

πŸ”Ž Search, Filtering & Sorting

The platform allows users to explore projects using:

  • Search functionality
  • Filtering options
  • Sorting options

Debouncing is implemented to improve performance when users search for projects.


🀝 Join Request System

Developers can send requests to join projects.

Project owners can:

  • Accept join requests
  • Reject join requests

This allows teams to form around shared project ideas.


πŸ“Š Dashboard

Each user has a personal dashboard displaying:

  • Projects created by the user
  • Join requests received
  • Projects the user joined

MongoDB aggregation is used to generate project statistics and insights.


πŸ“ CRUD Operations

The application supports full CRUD functionality:

  • Create project
  • Read projects
  • Update project
  • Delete project

All operations interact with Node.js + Express APIs and MongoDB database.


πŸ“‘ Pagination

Pagination is implemented when displaying large datasets such as project listings.

This improves performance and enhances user experience.


⚑ MongoDB Indexing

MongoDB indexing is implemented on frequently searched fields such as:

  • Email
  • Project title
  • Project domain
  • Skills

This improves query performance.


πŸ“Š MongoDB Aggregation

Aggregation pipelines are used to generate analytics such as:

  • Total projects created by users
  • Most common project domains
  • Join request statistics

🎨 Theme Support

The application supports:

  • Light mode
  • Dark mode
  • Theme toggle

User theme preference is stored using localStorage.


πŸ“± Responsive UI

The user interface is fully responsive using Tailwind CSS and works properly across:

  • Desktop
  • Tablet
  • Mobile devices

βš™οΈ Getting Started

Prerequisites

  • Node.js (v18+)
  • MongoDB (local or Atlas)
  • Google Cloud Console project (for Google Sign-In)

Backend Setup

cd Backend
npm install

Create a .env file in the Backend folder:

PORT=5000
MONGO_URI=mongodb://localhost:27017/devforge
JWT_SECRET=your_jwt_secret_here
GOOGLE_CLIENT_ID=your_google_client_id_here

Start the backend:

npm run dev

Frontend Setup

cd Frontend
npm install

Start the frontend:

npm run dev

The app should now be running at http://localhost:5173


🎯 Event Objective

This project was developed as part of a Full Stack Hackathon, where participants are required to build a real-world full stack application using modern web technologies.

The goal is to demonstrate skills in:

  • Full stack development
  • API development
  • Database integration
  • State management
  • Responsive UI design

πŸ‘¨β€πŸ’» Author

Mann Patel
Computer Engineering Student

Passionate about Full Stack Development and MERN Stack applications.


⭐ If you like this project, consider giving it a star on GitHub.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors