Features β’ Demo β’ Quick Start β’ Documentation β’ Contributing
Live Application: https://carpooling-app-chl.vercel.app
API Backend: https://backend-kohl-six-71.vercel.app
π The application is deployed on Vercel with separate deployments for frontend and backend.
- Multi-provider Authentication - JWT tokens, Google OAuth integration
- Password Security - Bcrypt hashing with configurable salt rounds
- Rate Limiting - Protection against brute force attacks
- Input Validation - Server-side validation and sanitization
- XSS Protection - Security headers and content security policies
- Modern UI/UX - Intuitive design with Tailwind CSS
- Smooth Animations - Framer Motion for delightful interactions
- Responsive Design - Optimized for all screen sizes (mobile-first)
- Accessibility - WCAG 2.1 AA compliant with ARIA labels
- Dark Mode Ready - Theme support (coming soon)
- Blazing Fast - Code splitting and lazy loading
- Optimized Bundles - Tree shaking and minification
- SEO Optimized - Meta tags, OpenGraph, and structured data
- PWA Support - Service worker and offline capabilities
- CDN Ready - Static assets optimized for edge delivery
|
|
Before you begin, ensure you have the following installed:
| Requirement | Version | Download |
|---|---|---|
| Node.js | 18.0.0+ | Download |
| MongoDB | 4.4+ | Download |
| Git | Latest | Download |
| npm/yarn | Latest | Included with Node.js |
- Clone the repository
git clone https://github.com/your-username/cogo-carpooling.git
cd cogo-carpooling- Install root dependencies
npm install- Set up Backend
cd backend
npm install
# Create environment file
cp .env.example .env
# Edit .env with your MongoDB URI and other settings- Set up Frontend
cd ../frontend
npm install
# Create environment file
cp .env.example .env
# Edit .env with your API URL and other settings- Start Development Servers
Backend (Terminal 1):
cd backend
npm run devFrontend (Terminal 2):
cd frontend
npm run devThe application will be available at:
- π¨ Frontend: http://localhost:5173
- βοΈ Backend: http://localhost:5000
- π API Docs: http://localhost:5000/api-docs (coming soon)
cogo-carpooling/
βββ backend/
β βββ src/
β β βββ config/ # Database and app configuration
β β βββ controllers/ # Route handlers
β β βββ middleware/ # Custom middleware
β β βββ models/ # Database models
β β βββ routes/ # API routes
β βββ server.js # Server entry point
β βββ package.json
βββ frontend/
β βββ public/ # Static assets
β βββ src/
β β βββ components/ # Reusable components
β β βββ pages/ # Page components
β β βββ services/ # API services
β β βββ hooks/ # Custom hooks
β β βββ utils/ # Utility functions
β β βββ assets/ # Images, icons, etc.
β βββ index.html
β βββ package.json
βββ README.md
Backend (.env)
NODE_ENV=development
PORT=5000
MONGO_URI=mongodb://localhost:27017/cogo
JWT_SECRET=your-super-secret-jwt-key
SESSION_SECRET=your-session-secret
GOOGLE_CLIENT_ID=your-google-client-id
GOOGLE_CLIENT_SECRET=your-google-client-secret
CLIENT_URL=http://localhost:5173Frontend (.env)
VITE_API_URL=http://localhost:5000/api
VITE_APP_NAME=CoGo
VITE_GOOGLE_CLIENT_ID=your-google-client-id# Backend tests
cd backend
npm test
# Frontend tests
cd frontend
npm test# Build frontend
cd frontend
npm run build
# Build and start backend
cd backend
npm run build
npm start- Build Docker images
# Backend
cd backend
docker build -t cogo-backend .
# Frontend
cd frontend
docker build -t cogo-frontend .- Run with Docker Compose
docker-compose up -d- Deploy Backend (e.g., on Heroku, Railway, or DigitalOcean)
- Deploy Frontend (e.g., on Vercel, Netlify, or Cloudflare Pages)
- Set up MongoDB (MongoDB Atlas recommended)
- Configure environment variables on your hosting platform
- Code Splitting - Dynamic imports for route-based splitting
- Lazy Loading - Images and components loaded on demand
- Bundle Optimization - Tree shaking and minification
- Caching - Browser caching with proper headers
- CDN Ready - Static assets optimized for CDN delivery
- Input Validation - Server-side validation with express-validator
- Rate Limiting - API rate limiting to prevent abuse
- CORS Configuration - Proper cross-origin resource sharing
- Security Headers - Helmet.js for security headers
- Data Sanitization - Protection against NoSQL injection
- Password Security - Bcrypt hashing with salt rounds
- ARIA Labels - Proper labeling for screen readers
- Keyboard Navigation - Full keyboard accessibility
- Focus Management - Proper focus indication and trapping
- Color Contrast - WCAG AA compliant color ratios
- Screen Reader Support - Semantic HTML and proper structure
- Service Worker - Offline functionality and caching
- Web App Manifest - App-like experience on mobile
- Push Notifications - Real-time updates (coming soon)
- Install Prompt - Add to home screen functionality
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add 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.
If you encounter any issues or have questions:
- Check the Issues page
- Create a new issue with detailed information
- Contact the development team
- User authentication and authorization
- Ride booking system
- Driver registration
- Basic search functionality
- Real-time chat between riders and drivers
- Push notifications for ride updates
- Advanced search filters
- Ride history and receipts
- Rating and review system
- Payment integration (Stripe/PayPal)
- Route optimization with Google Maps
- Admin dashboard with analytics
- Mobile app (React Native)
- Multi-language support (i18n)
- Automated ride matching
- Carbon footprint tracking
Thanks to all the amazing people who have contributed to this project!
- π§ Email: [email protected]
- π Issues: GitHub Issues
- π¬ Discussions: GitHub Discussions
- π Documentation: Wiki
If you find this project useful, please consider giving it a star!
- Icons from Lucide Icons
- UI components inspired by Shadcn/ui
- Documentation template from Best-README-Template
Built with β€οΈ by the CoGo Team
If you like this project, please consider giving it a β!