Install the packages from the root directory
npm install
to run the server and client separately, open two terminals and run:
cd server && npm run dev
This will start the server instance.
In the second terminal run
cd client && npm run dev
this will start the client application.
If you would like to start them both at the same time, then from the root directory run:
npm run dev
This will start both the client and server in a single terminal.
Environment variables are as follows
PORT=<port-to-listen-on>
MONGO_URI=<Your-mongodb-uri>
JWT_SECRET=<super-secret-hash>
These variables should get the server up and running!
Flat-rate is an automotive industry standard for the way most automotive technicians get paid. They rely on a certain "book time" to get the hours to make a paycheck. An example would be if a vehicle came in, and a service manual says that it pays two hours to complete a specific job. If the technician spends only one hour to complete the job, they get paid for the two hours. On the other hand, if they complete it after four hours, they still only get paid for two.
This is a pay system meant to incentivise the technician to be quick with repairs. The quickness of the repair, in turn, boosts a technician's productivity. In effect, they can potentially give themselves a raise each week while increasing profit for the componany.
Some shops still use old systems that aren't up to date and technicians are left with being reliant on others to keep track of their flagged hours and productivity. They may also have no way of documenting, properly, certain aspects of a repair that may be pertinent to them and disregarded by others.
The solution is to provide technicians with yet another tool to be able to cover their bases and to make sure that their hours are accurate. Keeping track of how many hours they flag... currently through a note system. The idea is to be able to accurately document the hours so that technicians can ensure that they get paid what they earned.
Currently the app is set up to accept form input from the user. To create a Repair Order the user needs to input a few pieces of information.
- A repair order number
- Most shops should have these printed for the technician.
- The number is typically created when a customer is taken in.
- A VIN (Vehicle Identification Number)
- Usually located on the created repair order.
- If not on the ticket, then it can be found on the vehicle.
- This information is used to populate the vehicle make, model, year, and engine size.
- The vehicle information is populated from the NHTSA api.
- A checkbox to indicate if a ticket is customer pay or warranty
- Will be used as a later metric to make calculations on warranty book times compared to customer pay.
- Customer pay can extend to include after market warranty companies.
- There is a discrepancy in the book hours between warranty times and customer book times.
- Future usage would be to include those discrepancies and make them transparent.
- A notes section
- This section is where most of the magic will happen currently.
- Later this will be used strictly for notes. But for now, all input related to hours and repairs go here.
- Implement a lookup by VIN
- allow other users to look up the VIN and view the notes and repairs from previous visits at other shops.
- some information may need to be redacted if the requesting user didn't create the repair.
- this feature is needed to confirm previous repairs when the repair is unknown to the customer.
- helps to guide the technician to a possible repeat failure or causal failure from a previous repair.
- allow other users to look up the VIN and view the notes and repairs from previous visits at other shops.
- Data visualization
- Let users visualize their hours on a daily, weekly, monthly, and annual basis.
- set up aggregations to perform calculations for this feature.
- Implement a sales amount per repiar order.
- should have an aggregate for average sales per ticket.
- should have total sales for day, week, month, and year.
- helps to keep track of how much they are making their employer.
- Let users visualize their hours on a daily, weekly, monthly, and annual basis.
- Image storage
- should allow image storage for the user to attach images related to the repair.
- to disk or not to disk... that is the question
- should allow image storage for the user to attach images related to the repair.
- Setup email password recovery
- currently no way to recover password.
- should also implement an update user page for a similar purpose