β― Modern rideshare platform for school communities
- Overview
- Features
- Project Structure
- Getting Started
- Project Roadmap
- Contributing
- License
- Acknowledgments
carp.school is a comprehensive rideshare application built with Meteor.js and React, designed specifically for school communities. The platform enables students, faculty, and staff to create and join carpools with real-time chat, interactive map integration, and native mobile support for iOS and Android.
The application leverages modern web technologies including styled-components for UI, OpenMapTiles for mapping, and Cordova for native mobile functionality. With features like UUID-based place references, comprehensive error handling, and skeleton loading states, carp.school provides a polished user experience across all platforms.
| Feature | Summary | |
|---|---|---|
| β‘ | Real-time Chat | In-ride messaging with live updates and participant management |
| π± | Native Mobile | iOS/Android apps with native navigation bars and optimized UX |
| πΊοΈ | Interactive Maps | OpenMapTiles integration with route planning via OSRM |
| π€ | User Profiles | Photo uploads, profile management, and user authentication |
| π | Place Management | Save frequently used locations with UUID-based references |
| π¨ | Modern UI | Responsive design with skeleton loading states and error boundaries |
| π | Secure Auth | SVG CAPTCHA verification and secure user authentication |
| π | Ride Management | Create, join, and manage carpools with shareable invite codes |
| π οΈ | Developer Tools | Comprehensive testing utilities and component documentation |
| π | External Services | TileServer, Nominatim, and OSRM integration for mapping features |
βββ carp.school/
βββ app/ # Main Meteor application
β βββ imports/
β β βββ api/ # Backend collections & methods
β β β βββ accounts/ # User authentication
β β β βββ chat/ # Real-time messaging
β β β βββ places/ # Location management
β β β βββ profile/ # User profiles
β β β βββ ride/ # Rideshare functionality
β β βββ ui/
β β βββ mobile/ # Mobile-specific components
β β β βββ components/ # Mobile UI components
β β β βββ ios/ # Native iOS components
β β β βββ pages/ # Mobile page components
β β β βββ styles/ # Mobile styled-components
β β βββ desktop/ # Desktop-specific components
β β βββ liquidGlass/ # Component library
β β βββ skeleton/ # Loading skeleton components
β β βββ test/ # Component testing & demos
β βββ plugins/ # Cordova plugins
β β βββ cordova-plugin-native-navbar/ # Custom iOS navbar
β βββ public/ # Static assets
β βββ client/ # Client entry point
β βββ server/ # Server entry point
βββ tools/ # Development utilities
β βββ checkRefs.py # Import validation
οΏ½οΏ½οΏ½ βββ read_terminal.applescript # Terminal integration
β βββ write_terminal.applescript
βββ config/ # Application settings
βββ docker-compose.yml # Development environment
βββ runner.sh # Unified development interfaceBefore getting started with carp.school, ensure your runtime environment meets the following requirements:
- Node.js: Version 14 or higher
- Meteor: Version 3.3.0 (Install Meteor)
- Package Manager: npm (included with Node.js)
- Mobile Development (Optional):
- iOS: Xcode, iOS Simulator
- Android: Android Studio, Android SDK
- Container Runtime: Docker (for production deployment)
Install carp.school using the following method:
- Clone the repository:
β― git clone https://github.com/zlc1004/Carpool- Navigate to the app directory:
β― cd Carpool/app- Install Meteor dependencies:
β― meteor npm install- Optional - Set up external services:
β― cd .. && ./install.sh # Sets up TileServer, Nominatim, OSRMRun carp.school in different modes:
β― cd app && npm start # Web development server
β― cd app && npm start ios # iOS development with simulator
β― cd app && npm start android # Android developmentβ― cd app && npm start prod # Production build with DockerDevelopment Tools
β― cd app && npm run lint # Check code quality
β― cd app && npm run lint:fix # Auto-fix linting issuesThe application will be available at:
- Web:
http://localhost:3001 - MongoDB:
mongodb://127.0.0.1:3002/meteor
carp.school includes comprehensive component testing and demos:
β― cd app && npm start
β― # Navigate to http://localhost:3001/_test for component demosAvailable Test Pages:
- Component Library: Desktop & mobile component showcase
- Skeleton Components: Loading state demonstrations
- LiquidGlass Components: UI component library
- Mobile Navigation: iOS/Android navigation testing
- π¬ Join the Discussions: Share your insights, provide feedback, or ask questions.
- π Report Issues: Submit bugs found or log feature requests for the
Carpoolproject. - π‘ Submit Pull Requests: Review open PRs, and submit your own PRs.
Contributing Guidelines
- Fork the Repository: Start by forking the project repository to your github account.
- Clone Locally: Clone the forked repository to your local machine using a git client.
git clone https://github.com/zlc1004/Carpool
- Create a New Branch: Always work on a new branch, giving it a descriptive name.
git checkout -b new-feature-x
- Make Your Changes: Develop and test your changes locally.
- Commit Your Changes: Commit with a clear message describing your updates.
git commit -m 'Implemented new feature x.' - Push to github: Push the changes to your forked repository.
git push origin new-feature-x
- Submit a Pull Request: Create a PR against the original project repository. Clearly describe the changes and their motivations.
- Review: Once your PR is reviewed and approved, it will be merged into the main branch. Congratulations on your contribution!
This project is protected under the MIT License. For more details, refer to the LICENSE file.
- Meteor.js - Full-stack JavaScript platform
- OpenMapTiles - Vector map tiles and hosting
- Nominatim - Geocoding and search functionality
- OSRM - Route calculation and optimization
- React - UI component framework
- styled-components - CSS-in-JS styling solution
- Semantic UI React - UI component library