Avec is a modern rideshare platform built specifically for university communities. It enables students and faculty to share rides, reducing transportation costs and environmental impact while building a stronger campus community.
-
Ride Management
- Post and search for rides
- Real-time ride status updates
- Flexible booking system
- Seat availability tracking
-
User System
- Email and password authentication
- Google OAuth integration
- JWT-based session management
- Profile customization
-
Reviews & Ratings
- Rate drivers and passengers
- Detailed review system
- Review moderation
- Anti-spam protection
-
Real-time Communication
- WebSocket-based live chat
- Message persistence
- Typing indicators
- Read receipts
-
Payment Integration (Planned)
- Stripe Connect integration
- Payment processing
- Transaction history
- Framework: Next.js 15 with App Router
- React 19
- TypeScript
- Server Components
- UI Components:
- Radix UI primitives
- Tailwind CSS
- Shadcn/UI components
- Form Handling:
- React Hook Form
- Zod validation
- Data Fetching:
- Axios for API calls
- React Query (planned)
- Auth Service:
- Express.js
- JWT authentication
- Prisma ORM
- PostgreSQL
- Rides Service:
- Express.js
- Prisma ORM
- PostgreSQL
- RabbitMQ for events
- Reviews Service:
- Express.js
- Prisma ORM
- PostgreSQL
- Chat Service:
- Express.js
- WebSocket
- Redis for presence
- PostgreSQL for messages
- Payment Service (Planned):
- Express.js
- Stripe API
- PostgreSQL
- Development:
- pnpm workspaces
- Turborepo
- Docker Compose
- Deployment:
- Docker containers
- Kubernetes (planned)
- GitHub Actions CI/CD
avec/
├── apps/
│ └── web/ # Next.js web application
│ ├── app/ # App router pages
│ ├── components/ # React components
│ ├── lib/ # Utilities and hooks
│ └── styles/ # Global styles
├── packages/
│ ├── common/ # Shared code
│ │ ├── types/ # TypeScript definitions
│ │ ├── utils/ # Shared utilities
│ │ └── constants/ # Shared constants
│ ├── ui/ # Shared UI components
│ └── api-client/ # Generated API client
├── services/
│ ├── auth/ # Authentication service
│ │ ├── src/
│ │ ├── prisma/ # Database schema
│ │ └── tests/ # Service tests
│ ├── rides/ # Ride management
│ ├── users/ # User management
│ ├── chat/ # Real-time chat
│ ├── reviews/ # Review system
│ └── payments/ # Payment processing
└── infrastructure/
├── terraform/ # IaC definitions
├── docker/ # Container configs
└── k8s/ # K8s manifests
- JWT-based authentication
- Google OAuth 2.0 integration
- Password hashing with bcrypt
- Session management with Redis
- Email verification
- Ride CRUD operations
- Booking management
- Location services
- Event publishing
- Review creation and retrieval
- Rating calculations
- Basic moderation
- Report handling
- WebSocket connections
- Message persistence
- Presence tracking
- Chat history
- Node.js 20+
- pnpm 8+
- PostgreSQL 14+
- Redis 7+
- Docker & Docker Compose
-
Clone the repository: ```bash git clone https://github.com/arniber21/RideshareWeb.git cd RideshareWeb ```
-
Install dependencies: ```bash pnpm install ```
-
Set up environment variables: ```bash cp .env.example .env ```
-
Initialize databases: ```bash pnpm db:push ```
-
Start the development server: ```bash pnpm dev ```
- `pnpm dev`: Start all services in development mode
- `pnpm build`: Build all packages and applications
- `pnpm test`: Run tests across the monorepo
- `pnpm lint`: Run linting across the monorepo
- `pnpm db:push`: Push database schema changes
- `pnpm db:generate`: Generate Prisma client
See `.env.example` for all required environment variables and their descriptions.
- Mobile applications (React Native)
- Additional OAuth providers
- Advanced ride matching
- Real-time notifications
- Payment processing
- University SSO integration
- Analytics dashboard
We welcome contributions! Please see our Contributing Guide for details.
This project is licensed under the MIT License - see the LICENSE file for details.