An adaptive and intelligent motorcycle service reminder app for Indonesian riders.
- 🏍️ Indonesian Motorcycle Database - Supports 50+ popular models (Yamaha, Honda, Suzuki)
- 📊 Adaptive Tracking - Only resets timers for serviced components
- 📱 Responsive Design - Mobile-friendly interface
- 🔐 Firebase Authentication - Login with email/password or Google
- ☁️ Cloud Sync - Automatic data synchronization with Firebase Realtime Database
- 📈 Visual Progress - Progress bars for each component
- 📜 Service History - Track all service records with cost details
- 🎨 Modern UI - Minimalist design with Tailwind CSS
- Node.js 18+ and Yarn/npm
- Firebase account (free tier)
- Clone this repository:
git clone https://github.com/yourusername/motolog.git
cd motolog- Install dependencies:
yarn install
# or
npm install-
Setup Firebase:
- Create a new project at Firebase Console
- Enable Authentication (Email/Password and Google)
- Enable Realtime Database
- Copy credentials from Project Settings
-
Setup environment variables:
cp .env.example .env- Edit
.envfile with your Firebase credentials:
VITE_FIREBASE_API_KEY=your_api_key_here
VITE_FIREBASE_AUTH_DOMAIN=your_auth_domain_here
VITE_FIREBASE_DATABASE_URL=your_database_url_here
VITE_FIREBASE_PROJECT_ID=your_project_id_here
VITE_FIREBASE_STORAGE_BUCKET=your_storage_bucket_here
VITE_FIREBASE_MESSAGING_SENDER_ID=your_messaging_sender_id_here
VITE_FIREBASE_APP_ID=your_app_id_here- Run development server:
yarn dev
# or
npm run dev- Open browser at
http://localhost:5173
Add these rules to Firebase Realtime Database for security:
{
"rules": {
"users": {
"$uid": {
".read": "$uid === auth.uid",
".write": "$uid === auth.uid"
}
}
}
}- Click "Add Your First Motorcycle"
- Select brand (e.g., Yamaha)
- Select model (e.g., XMAX 250)
- Enter year and current odometer
- Click "Add Motorcycle"
- Click "Log New Service" button
- Select motorcycle to service
- Enter odometer reading at service
- Check components that were serviced (e.g., Engine Oil, CVT Service)
- Add notes and cost (optional)
- Click "Save Service Log"
For example, if you service at 1,500 km and check:
- ✅ Engine Oil Change (2,000 km interval)
- ✅ CVT Service (8,000 km interval)
The system will automatically:
- Reset Engine Oil timer → Next service at 3,500 km
- Reset CVT timer → Next service at 9,500 km
- Other components (Gear Oil, Spark Plug, etc.) remain on original schedule
- Dashboard shows most urgent service
- View progress bars for all components
- Color notifications:
- 🟢 Green: Still safe
- 🟡 Yellow: Less than 500 km remaining
- 🔴 Red: Overdue
yarn build
# or
npm run buildProduction files will be in the dist/ folder.
- Frontend: React 18 + Vite
- Routing: React Router v6
- Styling: Tailwind CSS 3
- Icons: Lucide React
- Backend: Firebase Authentication + Realtime Database
- State Management: React Context API
- Storage: Firebase Realtime Database
motolog/
├── src/
│ ├── components/ # Reusable components
│ ├── context/ # React Context providers
│ ├── data/ # Motorcycle templates database
│ ├── pages/ # Page components
│ ├── config/ # Firebase configuration
│ └── assets/ # Static assets
├── .env.example # Environment variables template
└── README.md
Available templates for:
Yamaha: XMAX 250, NMAX 155, Aerox 155, Fazzio, Mio Series
Honda: PCX 160, Vario 160, Beat, Scoopy, ADV 160
Suzuki: Nex II, Address
Each motorcycle has default components with accurate service intervals.
- Push notifications
- Export history to PDF
- Nearby workshop integration
- Service cost budgeting
- Custom intervals per component
- Community tips & sharing
Contributions are always welcome! Please create an issue or pull request.
MIT License - free to use for personal or commercial projects.
Created with ❤️ for Indonesian motorcycle community
Moto Log - Never miss a service again! 🏍️✨