DevConnect bridges the gap between final-year university students and top tech companies. Students showcase their Final Year Projects (FYPs) while companies discover talent, post job openings, and recruit directly from the platform.
- Registration & Authentication β Secure signup with
.eduemail validation, bcrypt password hashing, JWT sessions - Profile Management β University info, skills, keywords, LinkedIn/GitHub links, avatar upload
- FYP Submission β Upload projects with GitHub repo, demo video, static HTML demo page, poster, tags (5-10), and collaborator emails
- Multiple Projects β Students can submit multiple FYPs
- Browse Companies β View company profiles, open positions, and contact info
- Browse & Search Jobs β Filter by title, company, type; view detailed job descriptions
- Apply to Jobs β One-click application with duplicate prevention
- Real-time Messaging β Send messages to companies, view conversation history
- Dashboard β Live stats (project count, views, conversations)
- Company Registration β Register with company name (unique), industry, and contact email
- Profile Completion β Description, location, website, industry, size β enforced before access
- Post Multiple Jobs β Full job posting form with salary range, requirements, type, location
- View Applicants β See who applied to each job with their profile details
- Browse Talent β Search students by name, skills, keywords, or expertise
- Browse FYPs β Search projects by tags, category, department
- Messaging β Direct messaging with students
- Dashboard β Live stats (jobs posted, total applicants, conversations)
- Admin Dashboard β Platform-wide statistics (total students, companies, projects, pending reviews)
- User Management β View, activate/deactivate, change roles
- Project Moderation β Approve or reject submitted FYPs
- Full Access β Access to all platform sections
- bcrypt Password Hashing β Passwords hashed with 12 salt rounds before storage
- JWT Authentication β Secure token-based sessions with expiry
- Role-Based Access Control β
student,company,adminroles enforced at route and middleware level - Input Sanitization β
express-mongo-sanitizeandxss-cleanmiddleware - Rate Limiting β API rate limiting via
express-rate-limit - Helmet β Security headers with
helmet - Cookie-based Tokens β HTTP-only cookies for session management
| Layer | Technology |
|---|---|
| Frontend | React 18, Vite, TailwindCSS, Framer Motion |
| Backend | Node.js, Express.js |
| Database | MongoDB with Mongoose ODM |
| Authentication | JWT + bcrypt |
| File Upload | Multer + Cloudinary |
| State Management | React Context + TanStack React Query |
| Form Validation | Zod + React Hook Form (client), Express validators (server) |
| Icons | Lucide React |
| Notifications | React Hot Toast |
project/
βββ backend/
β βββ config/ # Database configuration
β βββ controllers/ # Route handlers (auth, project, job, message, student, company, admin)
β βββ middleware/ # Auth, upload, error handling
β βββ models/ # Mongoose schemas (User, Project, Job, Message, StudentProfile, CompanyProfile)
β βββ public/demos/ # Static HTML demo pages for seeded FYPs
β βββ routes/ # Express route definitions
β βββ utils/ # Email utilities
β βββ seed.js # Database seeder (10 students, 10 companies, 3 FYPs, 25 jobs)
β βββ server.js # Express app entry point
βββ frontend/
β βββ src/
β β βββ components/ # Reusable components (Layout, Navbar, Footer, ProtectedRoute)
β β βββ context/ # AuthContext with JWT management
β β βββ pages/ # 18 page components
β β βββ App.jsx # React Router configuration
β βββ index.html
βββ README.md
- Node.js v18+
- MongoDB (local or Atlas)
- npm
git clone https://github.com/Tabarak-Cheema/devconnect.git
cd devconnectcd backend
npm installCreate a .env file in backend/:
PORT=5000
MONGO_URI=mongodb://localhost:27017/devconnect
JWT_SECRET=your_jwt_secret_key_here
JWT_EXPIRE=30d
NODE_ENV=development
CLIENT_URL=http://localhost:5173
CLOUDINARY_CLOUD_NAME=your_cloud_name
CLOUDINARY_API_KEY=your_api_key
CLOUDINARY_API_SECRET=your_api_secretnode seed.jsThis creates: 1 admin, 10 students, 10 companies, 3 FYPs (with static HTML demos), and 25 diverse job listings.
node server.jsServer runs on http://localhost:5000
cd ../frontend
npm install
npm run devApp runs on http://localhost:5173
| Role | Password | |
|---|---|---|
| Admin | admin@devconnect.com |
Admin123! |
| Student 1 | student1@uet.edu.pk |
Password123! |
| Student 2 | student2@uet.edu.pk |
Password123! |
| Company (NexGen) | hr@nexgensolutions.com |
Password123! |
| Company (CloudSync) | hr@cloudsynctechnologies.com |
Password123! |
- Ahmed Hassan, Sara Khan, Bilal Raza, Fatima Ali, Usman Tariq, Ayesha Noor, Hamza Sheikh, Zainab Malik, Omar Farooq, Hira Javed
- Each with unique skills (React, Python, IoT, Blockchain, etc.) and keywords
- NexGen Solutions, CloudSync Technologies, DataPulse AI, FinEdge Systems, MedTech Innovations, EduSpark Labs, CyberShield Corp, GreenWave Energy, PixelForge Studios, AgriSmart Tech
- Smart Farm Automation System β IoT + React + Arduino
- AI Vision Accessibility Tool β Computer Vision + TensorFlow + Chrome Extension
- Decentralized Academic Credentials β Blockchain + Solidity + IPFS
Frontend Developer, Backend Engineer, Data Scientist, DevOps Engineer, Mobile App Developer, ML Engineer, UI/UX Designer, Blockchain Developer, Cybersecurity Analyst, Game Developer, and 15 more across all 10 companies.
- Modern glassmorphism and gradient backgrounds
- Micro-animations with Framer Motion (page transitions, card hover effects)
- Responsive design β works on desktop, tablet, and mobile
- Dark/light consistent palette β Indigo-purple-slate color scheme
- Dynamic navigation β Navbar changes based on user role
- Real-time stats β Dashboard loads live data from API
POST /api/auth/registerβ Register new userPOST /api/auth/loginβ Login and get JWTGET /api/auth/meβ Get current userPOST /api/auth/logoutβ Logout
GET /api/projectsβ List all approved projects (public)GET /api/projects/:idβ Get project detail (public)POST /api/projectsβ Submit new FYP (student)GET /api/projects/mineβ My projects (student)
GET /api/jobsβ List all active jobsGET /api/jobs/:idβ Job detail with applicantsPOST /api/jobsβ Post new job (company)POST /api/jobs/:id/applyβ Apply to job (student)
GET /api/studentsβ Browse students (company/admin)GET /api/students/meβ My profile (student)PUT /api/students/meβ Update profile (student)
GET /api/companiesβ List all companies (public)GET /api/companies/:idβ Company detail (public)GET /api/companies/meβ My profile (company)PUT /api/companies/meβ Update profile (company)
GET /api/messages/conversationsβ My conversationsGET /api/messages/:otherUserIdβ Conversation messagesPOST /api/messagesβ Send message
GET /api/admin/statsβ Platform statisticsGET /api/admin/usersβ All usersPUT /api/projects/:id/approveβ Approve projectPUT /api/projects/:id/rejectβ Reject project
- Muhammad Tabarak Cheema (23i-0665)
- Mohammad Rayaan Raza (23i-0535)
This project was built as a Final Year Project for the BS Computer Science program at UET Lahore, 2025-2026.