Jonathan Contreras homepageJonathan Contreras
HomeAboutProjectsBlogUsesServicesContact

Jonathan Contreras

Full-Stack Developer & CS Student passionate about creating meaningful digital experiences through code.

Quick Links

HomeAboutProjectsBlogUsesServicesContact

Get in Touch

[email protected]

Houston, TX

GitHubLinkedInRSSResume

© 2026 Jonathan Contreras. All rights reserved.

Back to Projects

Fixr - Vehicle Maintenance Tracker

FIXR is a full-stack web application that simplifies vehicle maintenance by tracking service history and sending timely reminders. It features Fixy, an AI mechanic assistant powered by Gemini that provides easy-to-understand maintenance explanations, cost estimates, and DIY advice, plus Google Maps integration to find nearby mechanics.

Next.jsVercelJavaScriptConvexGemini APINextAuthResendTailwind CSS
Live DemoVideo Demo
Fixr - Vehicle Maintenance Tracker
<2s
AI Response Time
95%+
Reminder Accuracy
100+
Active Vehicles

The Problem

Vehicle maintenance is confusing and expensive. Most people don't know when to service their car, what maintenance actually means, or whether they're being overcharged by mechanics. Missed maintenance leads to costly repairs; unnecessary maintenance wastes money.

Existing solutions are either too technical (maintenance manuals), too generic (calendar reminders), or vendor-locked (dealership apps). People need a personal maintenance assistant that speaks plain English and keeps their specific vehicle history.

My Approach

I built FIXR as a personal vehicle maintenance companion that tracks service history, sends intelligent reminders, and provides AI-powered advice through "Fixy," a mechanic assistant that explains maintenance in everyday language.

The app uses a timeline-based interface showing past services and upcoming maintenance. Each maintenance item includes clear explanations, typical cost ranges, and whether it's a DIY-friendly task.

Integration with Google Maps helps users find nearby mechanics with ratings and reviews. The AI assistant can analyze service quotes, explain technical terms, and help users decide whether recommended service is actually necessary.

Visual Showcase

FIXR Vehicle Maintenance Dashboard

Dashboard showing vehicle maintenance timeline and upcoming services

Technical Deep Dive

Why Convex over Supabase or Firebase? Convex provides real-time reactivity with a better TypeScript experience. Queries automatically update when data changes, perfect for maintenance reminders that depend on mileage and time. The reactive queries mean no manual cache invalidation.

Why Gemini API? Google's Gemini excels at explaining technical concepts in simple terms and has strong reasoning for maintenance decisions. I crafted prompts that make it act as a helpful mechanic, not a generic chatbot. The system prompt includes car maintenance context, cost awareness, and safety-first guidance.

The reminder system uses Convex scheduled functions that run daily, checking each vehicle's maintenance schedule against current mileage and time since last service. Resend handles email delivery with customizable notification preferences.

NextAuth with database sessions provides secure authentication. I chose the Credentials provider for email/password auth, storing hashed passwords in Convex. Session tokens are HTTP-only cookies to prevent XSS attacks.

The Google Maps integration uses the Places API to search for mechanics within a configurable radius, filtering for high ratings and returning detailed information including hours, phone numbers, and user reviews.

Challenges & Lessons

Challenge: AI hallucinations about maintenance costs and schedules. Solution: Implemented a fact-checking layer that validates AI responses against manufacturer maintenance schedules and typical cost databases. The AI now cites sources for major claims.

Challenge: Users input mileage inconsistently (some regularly, some sporadically). Solution: Added mileage estimation based on time and average driving patterns, with clear UI indicators when using estimated vs. actual mileage.

Challenge: Email deliverability for reminders. Solution: Switched from SendGrid to Resend, implemented proper SPF/DKIM records, and added a digest option to reduce email volume (weekly summary instead of individual reminders).

Challenge: Mobile users needed quick access while at mechanics. Solution: Built a progressive web app with offline support for viewing service history, even without internet connection.

Key Lesson: AI is powerful for explanation and advice but needs guardrails for factual information. Users trust the app for maintenance decisions, so accuracy is critical.

If I rebuilt this, I'd add OCR for service receipts (snap a photo to auto-populate service details) and integration with OBD-II readers for automatic mileage tracking.

Want to see it in action?

Explore the live application or dive into the source code to see how it works.

Live Demo