A full-stack application that connects Penn State students for ride-sharing services, making transportation more accessible for international and domestic students.
-
User Authentication
- PSU-specific email verification
- Secure login/signup system
- Role-based access (drivers/passengers)
-
Ride Management
- Post ride offers and requests
- Search available rides
- Real-time ride status updates
- Location-based matching
-
Messaging System
- Real-time chat between users
- Ride-specific conversations
- Message notifications
-
Payment System
- Secure payment processing
- Multiple payment options
- Transaction history
-
Review System
- Rate and review drivers/passengers
- Build trust within the community
- View user ratings and feedback
- React with TypeScript
- Material-UI for components
- React Router for navigation
- Firebase Authentication
- Real-time messaging with Firebase
- Node.js with Express
- TypeScript for type safety
- MongoDB for database
- Firebase Admin SDK
RIDE-SHARE-PSU/
├── frontend/ # React frontend application
│ ├── public/ # Static files
│ │ ├── components/ # React components
│ │ ├── services/ # API services
│ │ ├── utils/ # Utility functions
│ │ └── types/ # TypeScript types
│ ├── package.json
│ └── tsconfig.json
│
├── backend/ # Node.js backend application
│ ├── src/
│ │ ├── controllers/ # Route controllers
│ │ ├── models/ # Database models
│ │ ├── routes/ # API routes
│ │ └── services/ # Business logic
│ ├── package.json
│ └── tsconfig.json
│
└── README.md
- Node.js (v14 or higher)
- npm or yarn
- MongoDB
- Firebase account
- Clone the repository
git clone https://github.com/Devin-M5706/RIDE-SHARE-PSU.git
cd RIDE-SHARE-PSU- Install frontend dependencies
cd frontend
npm install- Install backend dependencies
cd ../backend
npm install- Set up environment variables
- Create
.envfiles in both frontend and backend directories - Add necessary environment variables (see
.env.examplefiles)
- Start the development servers
# In frontend directory
npm start
# In backend directory
npm run dev- Use TypeScript for type safety
- Follow ESLint and Prettier configurations
- Write meaningful commit messages
- Document complex functions and components
main: Production-ready codedevelop: Development branch- Feature branches:
feature/feature-name - Bug fixes:
fix/bug-name
- 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
This project is licensed under the MIT License - see the LICENSE file for details.
Devin Myers - GitHub