Connecting organizations worldwide to collaborate on UN Sustainable Development Goals
Connecto is a full-stack web platform that facilitates collaboration between organizations, NGOs, educational institutions, and government bodies working toward the UN's 17 Sustainable Development Goals (SDGs). The platform enables resource sharing, project management, partnership building, and impact tracking.
- π Secure Authentication - Google OAuth & JWT-based auth with refresh tokens
- π’ Organization Management - Create and manage verified organization profiles
- π Project Tracking - Manage SDG-aligned projects with milestones
- π€ Resource Exchange - Match resource requests with offers (funding, volunteers, materials, expertise)
- π¬ Real-time Messaging - Socket.io powered communication
- π Analytics Dashboard - Track contributions and SDG progress
- π₯ Partnership Discovery - Find and connect with complementary organizations
- π¨ Modern UI - Responsive design with Framer Motion animations
- React 19.2.0 + Vite 7.2.4
- Tailwind CSS + shadcn/ui
- Framer Motion
- React Router DOM
- Axios + React Hook Form + Zod
- Node.js + Express 5.2.1
- MongoDB + Mongoose 9.0.0
- Socket.io 4.8.1
- Passport.js (Google OAuth)
- JWT Authentication
- Cloudinary (file uploads)
Connecto/
βββ client/ # React frontend
β βββ src/
β β βββ api/ # API service layer
β β βββ components/ # Reusable components
β β βββ context/ # React Context
β β βββ pages/ # Page components
β β βββ lib/ # Utilities
β βββ .env.example # Environment template
β
βββ server/ # Express backend
β βββ src/
β β βββ config/ # Configuration
β β βββ controllers/ # Request handlers
β β βββ middlewares/ # Express middleware
β β βββ models/ # Mongoose models
β β βββ routes/ # API routes
β β βββ services/ # Business logic
β βββ .env.example # Environment template
β
βββ Documentation/ # Guides and docs
- Node.js 18+ and npm
- MongoDB (local or Atlas)
- Google OAuth credentials
- Cloudinary account (for file uploads)
- Clone the repository
git clone https://github.com/lakshmanbhukya/connecto.git
cd connecto- Set up the server
cd server
npm install
cp .env.example .env
# Edit .env with your credentials
npm run dev- Set up the client
cd client
npm install
cp .env.example .env
# Edit .env with API URL
npm run dev- Access the application
- Frontend: http://localhost:5173
- Backend: http://localhost:5000
VITE_API_URL=http://localhost:5000PORT=5000
NODE_ENV=development
MONGO_URI=mongodb://localhost:27017/connecto
JWT_SECRET=your_jwt_secret_min_32_chars
JWT_REFRESH_SECRET=your_refresh_secret_min_32_chars
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret
GOOGLE_REDIRECT_URI=http://localhost:5000/api/auth/google/callback
CLOUDINARY_CLOUD_NAME=your_cloud_name
CLOUDINARY_API_KEY=your_api_key
CLOUDINARY_API_SECRET=your_api_secret
SMTP_HOST=smtp-relay.brevo.com
SMTP_PORT=587
SMTP_USER=your_smtp_user
SMTP_PASS=your_smtp_password
EMAIL_FROM=Connecto <noreply@yourdomain.com>
CLIENT_URL=http://localhost:5173See .env.example files for complete configuration.
# Make sure server is running
cd server
npm run dev
# Run integration tests
cd ..
node test-integration.jscd client
npx playwright test- Deployment Guide - Complete deployment instructions
- Production Checklist - Pre-deployment checklist
- Integration Test Plan - Testing scenarios
- API Documentation - API endpoints reference
- JWT tokens stored in httpOnly cookies
- Password hashing with bcryptjs
- Input validation with express-validator
- Rate limiting on API endpoints
- CORS configuration
- Helmet security headers
- XSS and SQL injection protection
Vercel (Frontend) + Render (Backend)
# Frontend
vercel --prod
# Backend
git push render mainRailway (Full Stack)
railway upDocker
docker-compose up -dSee DEPLOYMENT_GUIDE.md for detailed instructions.
POST /api/auth/register- Register new userPOST /api/auth/login- Login userGET /api/auth/me- Get current userPOST /api/auth/refresh- Refresh access tokenGET /api/auth/google- Google OAuth
GET /api/orgs- List organizationsPOST /api/orgs- Create organizationGET /api/orgs/:id- Get organizationPUT /api/orgs/:id- Update organization
GET /api/projects- List projectsPOST /api/projects- Create projectGET /api/projects/:id- Get project detailsPOST /api/projects/:id/milestones- Add milestone
GET /api/resources- List resourcesPOST /api/resources- Create resourcePOST /api/resources/:id/accept- Accept resource
See full API documentation for complete endpoint list.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- UN Sustainable Development Goals
- shadcn/ui for beautiful components
- All contributors and supporters
Made with β€οΈ for a sustainable future