A web application to track and manage maintenance for your mountain bikes. Organize your bikes, parts, and service history all in one place, ensuring your rides are always smooth and trouble-free.
- Add and manage multiple bikes.
- Track individual parts for each bike.
- Log maintenance services for each part.
- Intuitive, user-friendly interface styled with Tailwind CSS.
- Responsive design for use on desktop and mobile devices.
- Frontend: React.js, Tailwind CSS
- Backend: Express.js
- Database: PostgreSQL, Sequelize ORM
- Node.js and npm
- Docker
-
Clone the repository:
git clone https://github.com/your-username/mountain-bike-maintenance.git cd mountain-bike-maintenance
-
Install dependencies:
npm install
-
Start & Initialize the database:
npm run startdb npm run initdb
-
Seed the database:
npm run seed
-
Start the server:
npm run dev
-
Open the app in your browser:
- Once the server starts, a link to the app (e.g.,
Server running on http://localhost:8080
) will be printed to the console. - If using VSCode, hover the cursor over the url and follow the instructions in the window that appears.
- Alternatively, copy the URL and paste it into your browser's address bar.
- Once the server starts, a link to the app (e.g.,
-
Cleanup database after dev:
npm run stopdb npm run rmdb # to delete all data
-
Navigate to builds page to view bikes and associated parts (click the build name or caret to expand details).
-
Add build:
- Click the "+ Build" button.
- Give the build a name and leave checkbox marked to have new parts made for the build.
Only uncheck box if you are reusing parts you have already created or are removing parts from other builds.
- Click "submit" button.
-
Edit build name:
- Click build's "pencil" icon.
- Provide new name in the modal.
- Click "submit" button.
-
Delete build:
- Click build's "trashcan" icon.
- To additionally delete build's parts, click the checkbox. Otherwise, leave unchecked.
- Click "delete" button in the modal. Once submitted, this action cannot be undone.
-
Navigate to parts page to view user's parts.
-
Add part:
- Click "+ Part" button to bring up modal.
- Fill name input field.
- Choose a build in "installed on" dropdown.
- Choose a "part category" and "part type" (in that order) from the dropdowns.
- Fill optional input fields. Optional fields may be helpful when searching for service manuals or maintenance instructions in the future.
-
Edit part:
- Click part's "pencil" icon.
- Change values in dropdowns or input fields.
- Confirm changes by clicking "submit" button.
-
Remove part (from a build)
- Click part's "pencil" icon.
- Change value of "installed on" dropdown to "not installed".
- Confirm changes by clicking "submit" button.
-
Swap part (from one build to another)
- Click part's "pencil" icon.
- Change value of "installed on" dropdown to the name of build it will be moved to.
- Confirm changes by clicking "submit" button.
-
Delete part:
- Click part's "trashcan" icon.
- Confirm by clicking "delete" button.
-
Navigate to maintenance page to view user's service logs.
-
Add a service:
- Click "+ Service" button.
- Choose a "build", "category", and "part" (in that order) from the dropdowns.
- Add a date, and any other notes that would be helpful to remember in the future.
- Click "submit" button.
-
Edit service:
- Click service's "pencil" icon.
- Change values in dropdowns or input fields.
- Confirm changes by clicking "submit" button.
-
Delete service:
- Click service's "trashcan" icon.
- Confirm by clicking "delete" button.
- Add notifications for scheduled maintenance.
- Include analytics for bike and part usage.
- Enable exporting service history to a PDF or CSV.
- Allow image uploads for bikes and parts.