Skip to content

zlc1004/Carpool

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1,595 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 server
❯ cd app && npm start ios    # iOS development with simulator
❯ cd 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 quality
❯ cd 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


About

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •