A modern fullstack application where developers showcase their projects and employers discover talent through meaningful engagement.
- React 18 - UI library
- Vite - Build tool and dev server
- React Router - Client-side routing
- Axios - HTTP client
- CSS3 - Custom styling (no frameworks)
- Node.js & Express - RESTful API server
- MongoDB & Mongoose - NoSQL database
- JWT - Authentication
- bcryptjs - Password hashing
- User authentication (developers & employers)
- Project showcase with rich details
- Real-time employer responses
- Save/bookmark projects
- Filter projects (All, Trending, Recent)
- Responsive design matching the original BuildFlow aesthetic
- Node.js (v16+)
- MongoDB (local or Atlas)
# Install server dependencies
cd server
npm install
# Install client dependencies
cd ../client
npm installCreate server/.env:
PORT=5000
MONGODB_URI=mongodb://localhost:27017/buildflow
JWT_SECRET=your-secret-key-change-in-production
NODE_ENV=development
# If using local MongoDB
mongodOr use MongoDB Atlas and update the MONGODB_URI in .env
Terminal 1 - Start Backend:
cd server
npm startTerminal 2 - Start Frontend:
cd client
npm run devThe app will be available at:
- Frontend: http://localhost:3000
- Backend API: http://localhost:5000
- Register as a Developer or Employer
- Developers can:
- Share projects with title, description, tech stack
- Add demo and GitHub links
- Specify what they're looking for (full-time, contract, etc.)
- View employer responses
- Employers can:
- Browse developer projects
- Respond to projects with opportunities
- Mark responses as helpful
- Save interesting projects
The UI matches the original BuildFlow design with:
- Libre Baskerville serif font for headings
- Work Sans for body text
- Elegant cream and charcoal color scheme
- Smooth animations and transitions
- Fully responsive layout
├── server/
│ ├── models/
│ │ ├── User.js
│ │ └── Project.js
│ ├── server.js
│ ├── package.json
│ └── .env
├── client/
│ ├── src/
│ │ ├── components/
│ │ │ ├── Header.jsx
│ │ │ ├── NewPostModal.jsx
│ │ │ └── ProjectPost.jsx
│ │ ├── pages/
│ │ │ ├── Feed.jsx
│ │ │ ├── Login.jsx
│ │ │ └── Register.jsx
│ │ ├── context/
│ │ │ └── AuthContext.jsx
│ │ ├── App.jsx
│ │ ├── main.jsx
│ │ └── index.css
│ ├── index.html
│ ├── vite.config.js
│ └── package.json
└── README.md
- Password hashing with bcrypt
- JWT-based authentication
- Protected API routes
- Input validation
- CORS configuration
- Set environment variables
- Deploy from GitHub
- Ensure MongoDB connection string is set
- Build:
npm run build - Deploy
distfolder - Set API URL environment variable
POST /api/auth/register- Register new userPOST /api/auth/login- Login userGET /api/auth/me- Get current user
GET /api/projects- Get all projectsGET /api/projects/:id- Get single projectPOST /api/projects- Create project (developers only)POST /api/projects/:id/responses- Add response (employers only)POST /api/projects/:id/save- Toggle save projectPOST /api/projects/:projectId/responses/:responseId/helpful- Mark response helpful
This project demonstrates:
- Full MERN stack development
- RESTful API design
- JWT authentication
- React hooks and context
- Component composition
- Responsive CSS design
- MongoDB schema design
- Protected routes
- Form handling and validation
MIT License - Free for learning and portfolio use
Built with ❤️ as a fullstack portfolio project