Skip to content

LuckDay21/Moto-Log

Repository files navigation

Moto Log - Smart Motorcycle Service Reminder 🏍️

An adaptive and intelligent motorcycle service reminder app for Indonesian riders.

✨ Features

  • 🏍️ 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

🚀 Quick Start

Prerequisites

  • Node.js 18+ and Yarn/npm
  • Firebase account (free tier)

Installation

  1. Clone this repository:
git clone https://github.com/yourusername/motolog.git
cd motolog
  1. Install dependencies:
yarn install
# or
npm install
  1. Setup Firebase:

    • Create a new project at Firebase Console
    • Enable Authentication (Email/Password and Google)
    • Enable Realtime Database
    • Copy credentials from Project Settings
  2. Setup environment variables:

cp .env.example .env
  1. Edit .env file 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
  1. Run development server:
yarn dev
# or
npm run dev
  1. Open browser at http://localhost:5173

🔒 Firebase Security Rules

Add these rules to Firebase Realtime Database for security:

{
  "rules": {
    "users": {
      "$uid": {
        ".read": "$uid === auth.uid",
        ".write": "$uid === auth.uid"
      }
    }
  }
}

📖 How to Use

1. Add Your First Motorcycle

  • Click "Add Your First Motorcycle"
  • Select brand (e.g., Yamaha)
  • Select model (e.g., XMAX 250)
  • Enter year and current odometer
  • Click "Add Motorcycle"

2. Log Service

  • 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"

3. Adaptive System Works! 🎉

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

4. Monitor Motorcycle Condition

  • Dashboard shows most urgent service
  • View progress bars for all components
  • Color notifications:
    • 🟢 Green: Still safe
    • 🟡 Yellow: Less than 500 km remaining
    • 🔴 Red: Overdue

📦 Build for Production

yarn build
# or
npm run build

Production files will be in the dist/ folder.

🛠️ Tech Stack

  • 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

📂 Project Structure

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

🎨 Motorcycle Database

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.

🔮 Roadmap (Future Features)

  • Push notifications
  • Export history to PDF
  • Nearby workshop integration
  • Service cost budgeting
  • Custom intervals per component
  • Community tips & sharing

🤝 Contributing

Contributions are always welcome! Please create an issue or pull request.

📄 License

MIT License - free to use for personal or commercial projects.

👨‍💻 Author

Created with ❤️ for Indonesian motorcycle community


Moto Log - Never miss a service again! 🏍️✨

About

Smart and adaptive motorcycle service reminder app tailored for Indonesian riders. Built with React, Tailwind CSS, and Firebase.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages