A full-stack platform connecting local developers with NGOs and SMEs for meaningful software projects.
- Developer Profiles: Showcase skills, experience, and portfolio
- Project Listings: Post and browse software development opportunities
- Smart Matching: Connect developers with relevant projects
- Messaging System: Direct communication between developers and clients
- Dashboard: Track projects, applications, and earnings
- Real-time Updates: Stay informed about project status and messages
- React 18 - Modern UI library
- React Router - Client-side routing
- Axios - HTTP client for API calls
- CSS3 - Custom styling with responsive design
- Font Awesome - Icons and UI elements
- Node.js - Runtime environment
- Express.js - Web framework
- MongoDB - NoSQL database
- Mongoose - MongoDB object modeling
- JWT - Authentication and authorization
- bcryptjs - Password hashing
- express-validator - Input validation
localdevhub/
├── client/ # React frontend
│ ├── public/
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ ├── pages/ # Main application pages
│ │ ├── utils/ # Utility functions and API calls
│ │ └── App.js # Main application component
│ └── package.json
├── server/ # Node.js backend
│ ├── controllers/ # Request handlers
│ ├── models/ # Database schemas
│ ├── routes/ # API routes
│ ├── middleware/ # Custom middleware
│ ├── index.js # Server entry point
│ └── package.json
├── .github/
│ └── workflows/ # GitHub Actions
└── package.json # Root package.json
- Node.js (v16 or higher)
- MongoDB (local or cloud)
- Git
-
Clone the repository
git clone https://github.com/yourusername/localdevhub.git cd localdevhub -
Install dependencies
npm run install-all
-
Set up environment variables
# Copy the example environment file cp server/env.example server/.env # Edit the .env file with your configuration nano server/.env
-
Start MongoDB
# If using local MongoDB mongod # Or use MongoDB Atlas (cloud) # Update MONGODB_URI in .env file
-
Run the application
# Development mode (runs both frontend and backend) npm run dev # Or run separately: # Backend only npm run server # Frontend only npm run client
-
Access the application
- Frontend: http://localhost:3000
- Backend API: http://localhost:5000
- API Health Check: http://localhost:5000/api/health
Create a .env file in the server directory:
NODE_ENV=development
PORT=5000
MONGODB_URI=mongodb://localhost:27017/localdevhub
JWT_SECRET=your-super-secret-jwt-key
FRONTEND_URL=http://localhost:3000The application will automatically create the necessary collections when you first run it. No manual database setup is required.
- Register as a developer
- Complete your profile with skills, experience, and portfolio
- Browse projects in the marketplace
- Apply to projects that match your skills
- Communicate with clients through the messaging system
- Track progress in your dashboard
- Register as a client
- Submit project requests with detailed requirements
- Review applications from developers
- Select developers for your projects
- Manage projects and track progress
- Communicate with developers
The frontend is automatically deployed to GitHub Pages when you push to the main branch.
- Enable GitHub Pages in your repository settings
- Set source to "GitHub Actions"
- Push to main branch to trigger deployment
- Connect your GitHub repository to Render
- Create a new Web Service
- Set build command:
cd server && npm install - Set start command:
cd server && npm start - Add environment variables in Render dashboard
- Connect your GitHub repository to Railway
- Create a new project
- Set root directory to
server - Add environment variables in Railway dashboard
- Connect your GitHub repository to Cyclic
- Set root directory to
server - Add environment variables in Cyclic dashboard
- Create a free MongoDB Atlas account
- Create a new cluster
- Get your connection string
- Update
MONGODB_URIin your deployment environment
- Free: Basic project listings and developer profiles
- Premium: Priority placement, advanced analytics, unlimited messaging
- Small fee (2-5%) on successful project completions
- Payment processing through integrated payment gateways
- Featured listings for premium clients
- Sponsored developer profiles
- Local tech company partnerships
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Documentation: Check this README and code comments
- Issues: Open an issue on GitHub
- Email: contact@localdevhub.com
- Basic user authentication
- Project and developer listings
- Simple messaging system
- Dashboard functionality
- Payment integration
- File upload system
- Advanced search and filtering
- Email notifications
- Mobile app (React Native)
- AI-powered matching
- Video calling integration
- Project management tools
- Analytics dashboard
- Multi-language support
- React team for the amazing framework
- Express.js community for the robust backend framework
- MongoDB for the flexible database solution
- All contributors and users of LocalDevHub
Made with ❤️ for the developer community