Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,618 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CARPOOL

❯ Modern rideshare platform for school communities

license last-commit repo-top-language repo-language-count


Table of Contents


Overview

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.


Features

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

Project Structure

└── 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 interface

Getting Started

Prerequisites

Before 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)

Installation

Install carp.school using the following method:

  1. Clone the repository:
❯ git clone https://github.com/zlc1004/Carpool
  1. Navigate to the app directory:
cd Carpool/app
  1. Install Meteor dependencies:
❯ meteor npm install
  1. Optional - Set up external services:
cd .. && ./install.sh  # Sets up TileServer, Nominatim, OSRM

Usage

Run carp.school in different modes:

Development Mode  

cd app && npm start        # Web development servercd app && npm start ios    # iOS development with simulatorcd app && npm start android # Android development

Production Mode  

cd app && npm start prod   # Production build with Docker

Development Tools

cd app && npm run lint     # Check code qualitycd app && npm run lint:fix # Auto-fix linting issues

The application will be available at:

  • Web: http://localhost:3001
  • MongoDB: mongodb://127.0.0.1:3002/meteor

Testing

carp.school includes comprehensive component testing and demos:

cd app && npm start
❯ # Navigate to http://localhost:3001/_test for component demos

Available Test Pages:

  • Component Library: Desktop & mobile component showcase
  • Skeleton Components: Loading state demonstrations
  • LiquidGlass Components: UI component library
  • Mobile Navigation: iOS/Android navigation testing

Contributing

Contributing Guidelines
  1. Fork the Repository: Start by forking the project repository to your github account.
  2. Clone Locally: Clone the forked repository to your local machine using a git client.
    git clone https://github.com/zlc1004/Carpool
  3. Create a New Branch: Always work on a new branch, giving it a descriptive name.
    git checkout -b new-feature-x
  4. Make Your Changes: Develop and test your changes locally.
  5. Commit Your Changes: Commit with a clear message describing your updates.
    git commit -m 'Implemented new feature x.'
  6. Push to github: Push the changes to your forked repository.
    git push origin new-feature-x
  7. Submit a Pull Request: Create a PR against the original project repository. Clearly describe the changes and their motivations.
  8. Review: Once your PR is reviewed and approved, it will be merged into the main branch. Congratulations on your contribution!
Contributor Graph


License

This project is protected under the MIT License. For more details, refer to the LICENSE file.


Acknowledgments


Releases

Packages

Used by

Contributors

Languages