A secure, student-only rideshare platform exclusively for university students with .edu email addresses. RideABull connects students for safe, affordable rides to and from campus while reducing carbon footprint.
- 🔒 Secure Authentication: Google OAuth and email/password login with .edu email verification
- 👥 Student-Only Community: Restricted to verified university students
- 🚗 Ride Management: Create, find, and join rides to and from campus
- 🗺️ Route Visualization: Google Maps integration for clear route planning
- 💰 Cost Sharing: Split travel expenses with fellow students
- 🌱 Eco Impact: Track CO₂ emissions saved through carpooling
- 👤 User Profiles: Customizable profiles with university verification
- 📱 Responsive Design: Clean, modern UI that works on all devices
- Frontend: HTML, CSS, JavaScript
- Backend: Node.js, Express
- Database: MongoDB (Atlas)
- Authentication: JWT, Passport.js, Google OAuth
- Maps: Google Maps API
- File Storage: GridFS for profile pictures
- Security: bcrypt for password hashing
- Node.js (v14 or higher)
- npm (v6 or higher)
- MongoDB Atlas account (or local MongoDB installation)
- Google Cloud Platform account for API keys
-
Clone the repository
git clone https://github.com/yourusername/rideabull.git cd rideabull -
Install dependencies
npm install
-
Set up environment variables Create a
.envfile in the root directory with the following variables:# API Keys GOOGLE_MAPS_API_KEY=your_google_maps_api_key GEMINI_API_KEY=your_gemini_api_key # MongoDB Configuration MONGODB_URI=your_mongodb_connection_string PORT=3000 # JWT Configuration JWT_SECRET=your_jwt_secret_key # Google OAuth Configuration GOOGLE_CLIENT_ID=your_google_client_id GOOGLE_CLIENT_SECRET=your_google_client_secret -
Start the server
npm start
For development with auto-reload:
npm run dev
-
Access the application Open your browser and navigate to
http://localhost:3000
-
Email/Password Registration:
- Students register with a valid .edu email address
- Email verification ensures university affiliation
- Passwords are securely hashed using bcrypt
-
Google OAuth:
- Students can sign in with their university Google accounts
- Only .edu email addresses are accepted
- Streamlined authentication process
-
JWT Authentication:
- Secure token-based authentication for all API requests
- Tokens expire for enhanced security
- Landing Page: Introduction to RideABull with key features
- Authentication Pages: Login and registration with Google OAuth
- Ride Listings: Browse available rides with filters
- Ride Details: View route, driver info, and ride specifics
- Ride Creation: Post new rides with route planning
- User Profile: Manage personal information and preferences
To run tests:
npm test- Fork the repository
- Create your 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
- Google Maps API for route visualization
- MongoDB Atlas for database hosting
- Passport.js for authentication strategies
- Express for the web framework