DevLink is a full-stack collaboration platform designed to solve a common student problem: the difficulty of finding the right teammates for hackathons, group projects, and developer events.
Whether you are a first-year student without a massive network of coding friends, or an experienced developer looking for peers who will push your boundaries, DevLink acts as a "job application portal" specifically built for hackathon teams.
During hackathons and team-based events, you might be full of ideas and motivation but lack access to developers who complement your skill set. Traditional professional networking platforms (like LinkedIn) are too general, while messaging apps (like Discord or WhatsApp) lack structure.
DevLink solves this by providing:
- Team-First Discovery: Search teams by the specific hackathon event name or target stack.
- Role-Based Applications (Positions): Teams list exact roles they need (e.g., "Backend Developer" or "UI/UX Designer"), outlining specific required skills.
- Application & Pitch Workflow: Instead of instant public joining, candidates submit a personal pitch outlining their interest and skills. Team owners can then accept or reject applicants to curate their ideal squad.
- 👥 Team Recruiting Hub: Create teams for specific hackathons and manage open positions.
- 📝 Role-Based Positions: Open-role listings within teams, tracking status (
OpenorFilled) and required skills. - ✉️ Join Requests & Pitching: Job-board-style join applications with reviewable candidate messages for team owners.
- 👤 Developer Profiles & Portfolios: Showcases skills, location, GitHub/LinkedIn links, and active team counts.
- 📝 Community Feed: A social updates feed where users can share progress, seek suggestions, and comment/hash-tag.
- 🔐 Secure Session Auth: Stateless authentication using JWTs and protected client/server routing.
- React (Vite) — Optimized build toolchain and fast development.
- React Router DOM — Client-side SPA routing.
- Zustand & Context API — Global state management for authentication, community posts, and team listings.
- Tailwind CSS (v3) — Modern utility-first styling with dark/light mode configurations.
- Axios & Fetch API — Centralized request wrapper with integrated JWT token management.
- Node.js & Express.js — Modular and clean RESTful API framework.
- MongoDB & Mongoose — NoSQL database storage with structured schema validations.
- JSON Web Tokens (JWT) — Stateless user session management.
- Bcrypt.js — Secure password hashing middleware.
The database consists of 6 primary collections designed with clear relational schemas:
- User (
users): Renders basic authentication credentials, email, hashed passwords, and system roles. - Profile (
profiles): Contains rich developer portfolios, biographies, locations, skills, avatars, and social links. - Post (
posts): Manages social feed updates, author references, tags, and likes. - Team (
teams): Manages team profiles, unique URL-friendly slugs, target hackathons, repositories, and active members. - Position (
positions): Tracks open roles created by team owners, details required skills, and keeps track of the accepted applicant. - JoinRequest (
joinrequests): Functions as a join table linking candidates to teams, storing their custom cover letter/pitch and request status (pending/accepted/rejected).
DevLink/
├── devlink-frontend/ ← React (Vite) client application
│ ├── src/
│ │ ├── components/ ← Global UI elements (Navbar, Layout)
│ │ ├── pages/ ← Route layouts (Auth, Profile, Posts, Teams, Users)
│ │ ├── store/ ← State handlers (Zustand & Context Providers)
│ │ ├── utils/ ← Universal API fetching helpers
│ │ ├── App.jsx ← Core routing and layout mapping
│ │ └── main.jsx
│ ├── .env ← Client environments (VITE_API_URL)
│ └── package.json
│
├── devlink-backend/ ← Express API server
│ ├── middleware/ ← Authentication validation checks
│ ├── models/ ← Mongoose schemas (User, Profile, Teams, Post, Position, JoinRequest)
│ ├── routes/ ← API route endpoints
│ ├── server.js ← Core server entry point
│ ├── .env ← Server configurations (PORT, MONGO_URI, JWT_SECRET)
│ └── package.json
│
└── README.md
- Node.js (v18+)
- MongoDB (Local instance or MongoDB Atlas Connection String)
- Go to the backend directory:
cd devlink-backend - Create a
.envfile:MONGO_URI=your_mongodb_connection_string PORT=5000 JWT_SECRET=your_jwt_secret_key CLIENT_URL=http://localhost:5173
- Install dependencies and start:
npm install npm run dev
- Go to the frontend directory:
cd devlink-frontend - Create a
.envfile:VITE_API_URL=http://localhost:5000
- Install dependencies and start:
npm install npm run dev
- Access the web app at
http://localhost:5173.
Take a quick look at the application in action, including the main features, user flow, and overall interface.
💡 Tip: The demo provides a quick overview of the application and demonstrates how the different parts of the system work together.