GithubHelp home page GithubHelp logo

mwcaisse / car-tracker-server Goto Github PK

View Code? Open in Web Editor NEW
0.0 0.0 0.0 1.07 MB

New Server Module for Car Tracker

License: MIT License

C# 59.48% CSS 0.17% JavaScript 5.09% HTML 1.51% Groovy 0.24% Vue 33.51%

car-tracker-server's People

Contributors

mwcaisse avatar

Watchers

 avatar  avatar  avatar  avatar

car-tracker-server's Issues

Reader Exception

Executing job throw an Exception Error running 01 0D, response: 410D38<RXERROR com.github.pires.obd.exceptions.UnknownErrorException: Error running 01 0D, response: 410D38<RXERROR at java.lang.Class.newInstance(Native Method) at com.github.pires.obd.commands.ObdCommand.checkForErrors(ObdCommand.java:203) at com.github.pires.obd.commands.ObdCommand.readResult(ObdCommand.java:123) at com.github.pires.obd.commands.ObdCommand.run(ObdCommand.java:77) at com.ricex.cartracker.android.obd.ObdCommandExecutor.runOBDCommandNoCheck(ObdCommandExecutor.java:113) at com.ricex.cartracker.android.obd.ObdCommandExecutor.runOBDCommand(ObdCommandExecutor.java:107) at com.ricex.cartracker.android.service.reader.BluetoothOBDReader.executeOBDJob(BluetoothOBDReader.java:201) at com.ricex.cartracker.android.service.reader.BluetoothOBDReader.read(BluetoothOBDReader.java:77) at com.ricex.cartracker.android.service.task.OBDServiceTask.performLoopLogic(OBDServiceTask.java:97) at com.ricex.cartracker.android.service.task.ServiceTask.run(ServiceTask.java:36) at java.lang.Thread.run(Thread.java:761)

Trip Processor wrong user id

Trip processor shouldn't pull the trip from the current request when processing a trip. It should pull the user id from the owner of the car.

Track Car Maintenance

Allow users to track maintenance performed against their car.

Car Maintenance types include

  • Oil Change
  • Tire Rotation
  • Air Filter Change
  • Cabin Air Filter change

Along with the maintenance type capture the following:

  • Date
  • Mileage. Pre-populate this with the car's current mileage, allow the user to modify if incorrect

Authentication

Implement Authentication.

Add a forms based login for the UI
Add a token and header based login for API calls.

JSON Deserialization Errors

Controllers should return a HTTP415 if request body was in an unexpected format. Not just parse it and return null to the controller/service.

Logger not working in Jobs

Logger (IServerLogger) does not seem to work in the context of a Job.

Throws error "there is already an open datareader associated with this connection"

Create UI to view Server/Request Log

Create UI pages to view the request logs and to view the server logs.

Request Log

  • Grid containing the following columns
    -- Type, Request Method, Request Url, Response Status, User, Request Date
  • Popup modal that shows more detailed information
    -- Request Body / Response Body
    -- Request Headers / Response Headers
    -- Grid of Server Logs that correspond to the given request

Server Log

  • Grid containing the following columns
    -- Request Uuid, Type, Message, Create Date

Logging

Add logging to the server. Log all requests.

Logging in with no username/password 404s

On the login page, if user doesn't enter a username/password the form still posts, but the endpoint isn't found (likely because no parameters) and user sees a blank page with status of 404

Trip Possible Places duplicates

Trip Possible places creates duplicated entries when re-run. Should have it clear out the old entries if trip is reprocessed.

Automatically Process Trips

Automatically process finished trips.

Implement a queing/job service to implement trips independent of a web request.

Starting/Ending place GPS

If the GPS coords at start is vastly different than following readings... GPS snaps from one location to another at the beginning, don't use the first readings GPS coords as trip start.

Breadcrumbs

Add navigational bread crumbs to page to allow user to more easily navigate back and forth between pages in the application.

Automatic Place selection

Automatically select the start / destination place based on previous choices.

Use history of start / destination places for a the GPS ending point of a trip to guess the correct start / destination.

  • Keep a mapping of GPS coordinates and chosen places for those coordinates and a count of times chosen
  • This could possibly be calculated on the fly, rather than updating everytime. Explore which is better option.
  • Allow the user to correct the the automatically chosen place and update the mapping
  • Using approximate coordinates, chose the place that has chosen the most

The mapping will need to be introduced first to train the selection.

Combine UI/API

Combine the UI and API projects into one project. Nothing is being gained by having them as separate projects. Combining them together removes the issue of how to handle authentication between both applications.

Re-processing trip increments car mileage

re-processing a trip increments car mileage each time.

If the trip was already processed, should subtract the trip's mileage from the car before updating. Or only change it by the delta between processings.

UI - Trip Start/Destination Selection Modal

Update the selection of the Start/Destination place on a Trip to be a modal.

It will show the list of possible places and allow the user to select one.

Remove the start/destination panels from the main trip page.

Bulk Attribute

Create a bulk attribute that allows bulk requests to an API endpoint without modifying the endpoints code.

UI Theme

Create a theme/style to use for the UI.

Something to make the site look not like a basic bootstrap site and add some color/styyyyyyyyyyyyyyyyyyyyle.

Backfill Trip id

Create a script to backfill the TripId in PlaceVisit based off the Latitude/Longitude and Visit Date. Compared to Latitude/Longitude on the last reading for the trip and the End Date of the trip or date of the last reading (whichever the code uses to PlaceVisit)

UI Alert / Eror Messages

Add a method for adding page alerts / displaying error messages to users.

Remove the use of window.alert for displaying error messages when API calls fail.

Handle Enum Conversion

Determine a way to handle the Enum/Database conversion

  • Convert the current string based values in database to integer
  • Perform string to enum conversion in application
  • Other options?

Converting in the database loses database readability. Converting in the application performs the string conversion on every read.

Reader Logs

Add a start/end date filter on reader logs.

Trip Page Reader Logs

Show the relevant reader logs on the trip page for that trip.

Reader Logs from between start/end date of that trip.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.