Skip to content
View BenMoat's full-sized avatar

Highlights

  • Pro

Block or report BenMoat

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
BenMoat/README.md

What I am currently working on 🔨...

VinMind

VinMind is a web application designed for the management of one or more vehicles. It focuses on keeping track of vehicle modifications, insurance, servicing, tax and MOT.

landing


Design Engineer ▲ @Vercel and Creator of Shadcn/UI

chadcn


Tech Stack

Frontend

  • Next.js: Utilised for server-side rendering, enhancing performance and SEO.
  • TypeScript: Employed for static type checking, improving code reliability.
  • Shadcn/UI: A minimal yet beautifully designed UI component library.
  • Tailwind CSS: Used for utility-first styling, ensuring a modern and responsive UI.
  • Cloudinary: Used for hosting the files uploaded to a modification.

Backend

Authentication

  • Clerk: Integrated for user authentication and session management.

Features

Vehicle Overview

This tab provides an overview of your vehicle's data, depending on how you have populated the vehicle's information in the web app: overview

This screenshot shows a vehicle where the user has opted to input their reg to retrieve their tax and MOT status via the DVLA RES API. The user has also supplied a comprehensive list of modifications added to their vehicle. This provides the user with a daily reminder of how much money they have wasted *spent on modifications. 💸

Here is how a newly-added vehicle will look: overview-new

Light and Dark Mode:

Switch between light and dark mode at any time and your preference will be retained. dashboard-light-dark

It is automatically set depending on your system theme.

Card Visibility Menu

A card menu has now been added, allowing the user to show or hide cards on the Overview tab. This is independently configurable for each vehicle: card-menu

I know you want to hide the total costs of the modifications. You're welcome.

Notification Center

Get reminders of when your Tax, MOT, Servicing and Insurance is due.

Each reminder is colour-coded and prioritised by the due date, with the main notification's dot colour set by this:

  • 🟢 Due within 30 days.

  • 🟠 Due within 7 days.

  • 🔴 Due today/Overdue.

notifications notifications-read

Notifications can be dismissed individually or all at once by either clicking on Mark as Read when hovering over the message, or Mark all as Read at the top of the notification center. For data housekeeping, each message, both Read and Unread has an expiry date of 30 days where the message will automatically be deleted.

Vehicle Switcher

Seamlessly switch between any vehicle at any time, or add a new vehicle to your garage:

vehicle-switcher new-vehicle

I own an identity-confused Toyota "Zupr4" so I had to cover both options.

Modifications

Display a list of modifications with multiple ways of filtering them: modifications

The user has 18 modifications all with either one or more attachments, as highlighted by the Files column. He sure knows how to waste money. You thought you could escape the total cost of your modifications, didn't you.

Modification

Up to three Invoices or any relevant files related to the modification can be attached: modification

The user has created a non-obsolete modification and has attached a user guide to help brick their ECU.

Modification Types

Catergorise your modifications by what type they are: exterior, interior, performance etc: modification-types

The user is able to see all related modifications to this type. They are able to click on one to view or edit it. I don't have a shit joke for this one, sorry.

Servicing

Keep track of your vehicle's service history. If the user has added more than one service, it will display the mileage and time in between each service in an intermediate card:

servicing

Settings

Change your vehicle's name, supply the registration number or delete data associated with this vehicle: settings

The user can change their vehicle's name or delete the vehicle entirely at any time. Protection features are built in so a user cannot delete all modification types unless there are no modifications associated with that type. The developer wants to ensure you that he definitely, 100%, no cap on a stack, did not do this multiple times throughout development.

Responsiveness

Recently, I have been working on making the site more mobile-friendly, including adding a Burger Menu for smaller devices:

menu-mobile

overview-mobile

modifications-mobile

The app has been made fully mobile-responsive with the expensive of the developer's remaining sanity.

Tax, MOT and Insurance

Mistakenly, the government trusted me with some API keys.
Enter your vehicle's registration number to view its up-to-date tax and MOT status in the Overview tab. This is directly sourced from the DVLA RES API.

To avoid getting 429'd, a request is only sent to the RES API if the user has added/changed their registration or it has been 24 hours since the API was last called:

last-updated-badge

The user is able to see how recent the tax and MOT status is by clicking on the question mark icon.

The insurance is dependant on the user manually inputting the data. This still follows the same principal of calling an api once every 24 hours to ensure its reflecting the correct data. In this instance, the API is called to determine whether to update the insurance status as "Insured" or "Not Insured":

insurance-reminder

insurance-card

Now the 89 year old Margret can eagerly await to pay £4300 on her 2003 Micra.

Accessibility

Although I am not directly affected by a website's command of accessible features, I think it should be an absolute priority to make every website easily accessible to everyone. 93% is the lowest score from a page on this web app... for now.

accessibility

Project Chronology

Technical Documentation During Project Creation

If you're a true neckbeard, you can read through how I began developing this application here: https://1drv.ms/u/s!AmL6ph_olh5BlrJ-VBDoD6iCUCrrhQ?e=lCjA5c
⚠️ It is best read in a Markdown editor.

Popular repositories Loading

  1. BenMoat BenMoat Public

    1

  2. react-app react-app Public

    TypeScript

  3. game-hub game-hub Public

    TypeScript

  4. react-testing-starter react-testing-starter Public

    Forked from mosh-hamedani/react-testing-starter

    TypeScript