You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A comprehensive multi-module car-pooling platform featuring mobile clients (Android & iOS), a Java backend (Struts2-based web API), and a web-based manager/admin UI.
📱 Screenshots
✨ Key Features
For Drivers
Feature
Description
🚗 Ride Creation
Post upcoming trips with start/end points, date, time, and available seats
🗺️ Route Optimization
Integration with mapping services to visualize travel paths
👥 Passenger Management
View and manage booking requests from travelers
For Passengers
Feature
Description
🔍 Smart Search
Filter rides by destination, date, and price
⚡ Instant Booking
Secure a seat in just a few clicks
📊 Ride History
Track past and upcoming journeys
Technical Highlights
🔐 User Authentication - Secure login and profile management
🔔 Real-time Updates - Instant notifications on ride status changes
📱 Responsive Design - Optimized for desktop and mobile browsers
🛠️ Tech Stack
Category
Technology
Backend
Java, Struts2, MyBatis, Servlet
Web Server
Apache Tomcat
Database
MySQL
Android
Native Java/Kotlin
iOS
Native Swift/Objective-C
Maps
Baidu Maps API
Push Notifications
Baidu Push
Social SDK
UMeng (Tencent/WeChat SSO)
Image Loading
SDWebImage (iOS)
Networking
AFNetworking (iOS)
📂 Project Structure
dmy-carpooling-platform/
├── android/ # Android mobile applications
│ ├── CarPoolingApp/ # Primary carpooling app
│ └── MainApp/ # Companion application
├── ios/ # iOS mobile applications
│ ├── CarPoolingApp/ # BJPinChe - Carpooling app
│ └── MainApp/ # BJMainApp - Companion app
├── service/ # Backend REST API (Struts2)
├── manager/ # Admin/Manager Web UI (JSP)
├── database/ # MySQL schema and seed data
│ └── pinche.sql # Database schema
├── README.md # This file
└── LICENSE # MIT License
🗄️ Database Schema
The database schema is located in database/pinche.sql. It includes:
User authentication and profiles
Ride/Order management
Driver and passenger data
Payment and transaction records
Evaluation and rating system
City and location data
Quick Database Setup
# Create database and import schema
mysql -u root -p pinche < database/pinche.sql
🚀 Quick Start
Prerequisites
Requirement
Version
Notes
Java JDK
8+
Compatible with project
Apache Tomcat
7/8+
Servlet container
MySQL
5.6+
Database
Android Studio
Latest
Android development
Xcode
Latest
iOS development
Eclipse/IntelliJ
Latest
Java web development
Step 1: Database Setup
# Create MySQL database
mysql -u root -p -e "CREATE DATABASE pinche;"# Import schema and seed data
mysql -u root -p pinche < database/pinche.sql
Step 2: Configure Database Connection
Update JDBC properties in:
manager/src/jdbc.properties (Manager webapp)
service/src/jdbc.properties (Service API)
Step 3: Backend Service Setup
# Import service/ as Dynamic Web Project in Eclipse/IntelliJ# Configure Tomcat server# Deploy to http://localhost:8080/service/
Step 4: Manager UI Setup
# Import manager/ as Dynamic Web Project# Deploy to http://localhost:8080/manager/
Step 5: Android Development
# Open in Android Studio# File → Open → android/CarPoolingApp# Update AndroidManifest.xml with API endpoints# Build and run on emulator/device
Step 6: iOS Development
# Open Xcode project# open ios/CarPoolingApp/BJPinChe.xcodeproj# Configure Info.plist with API endpoints# Run on simulator/device
⚙️ Configuration
Database Configuration
File
Purpose
manager/src/jdbc.properties
Manager webapp DB connection
service/src/jdbc.properties
Service API DB connection
API Configuration
File
Purpose
service/src/com/webapi/common/ApiGlobal.java
Global API constants, push settings, endpoint URLs