Coder Social home page Coder Social logo

dorthrithil / carbulator-client Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 0.0 6.87 MB

A car sharing webapp for managing fuel costs and planning car trips.

Home Page: https://carbulator.net

License: MIT License

JavaScript 0.33% TypeScript 73.07% HTML 24.10% CSS 2.50%

carbulator-client's Introduction

CarSharingAppClient

This project was generated with Angular CLI version 6.2.1.

Development server

Run ng serve for a dev server. Navigate to http://localhost:4200/. The app will automatically reload if you change any of the source files.

Code scaffolding

Run ng generate component component-name to generate a new component. You can also use ng generate directive|pipe|service|class|guard|interface|enum|module.

Build

Run ng build to build the project. The build artifacts will be stored in the dist/ directory. Use the --prod flag for a production build.

Running unit tests

Run ng test to execute the unit tests via Karma.

Running end-to-end tests

Run ng e2e to execute the end-to-end tests via Protractor.

Further help

To get more help on the Angular CLI use ng help or go check out the Angular CLI README.

carbulator-client's People

Contributors

dorthrithil avatar

Stargazers

 avatar  avatar

Watchers

James Cloos avatar  avatar

carbulator-client's Issues

Communities: Detail View

  • Add a page that displays community details in cards
  • Add card that shows community members
  • Add card that shows last tours
  • Add card that shows last refuels
  • Add card that shows pending invitations
  • Add modal for finishing and force finishing a tour

TypeError when saving a refuel with zero liters

main.13d8af61dad4295f9272.js:1 ERROR TypeError: this.refuelForm.get(...).value.replace is not a function
    at l.addRefuel (7.395dbf0d4f8608076643.js:1)
    at Object.handleEvent (7.395dbf0d4f8608076643.js:1)
    at Object.handleEvent (main.13d8af61dad4295f9272.js:1)
    at Object.handleEvent (main.13d8af61dad4295f9272.js:1)
    at qr (main.13d8af61dad4295f9272.js:1)
    at main.13d8af61dad4295f9272.js:1
    at HTMLButtonElement.<anonymous> (main.13d8af61dad4295f9272.js:1)
    at e.invokeTask (polyfills.c2a7344c1c84ba3d2a73.js:1)
    at Object.onInvokeTask (main.13d8af61dad4295f9272.js:1)
    at e.invokeTask (polyfills.c2a7344c1c84ba3d2a73.js:1)

screen shot 2018-10-27 at 13 23 15

Shared tours with non-app members

Scenario: You drive a tours with two community members and one guest. The guest pays you 10€ for the gas. Who will get the money? Probably both, but how much? This money must be included in the payoff as positive credit and be tied to the specific tour. All members of this tour must get a positive credit of 1/n * amount in the payoff and the person who took the money must get an additional negative credit of 1 * amount.

Confirm create payoff modal

Currently you can create a payoff by accident quite quick. As it is not undoable, this should be confirmed first.

Configurable Dashboard

  • Possibility to mark exactly one community as favourite
  • Dashboard shows quick actions for favourite community

About page

We need an about page with some information about the app

Auto login fails

This is because I check the access token for validity which is of cause wrong. I only need to check the refresh token.

Account car list

A list of all cars that are owned by an account. There it should also be possible to edit car details.

Tours datagrid

A datagrid that shows all tours of a community

  • Parking position modal

Logo

I need a cool logo.

Changelog

We need a changelog to display changes to the app.

Communities: Leave community

There is already a route for this but I need to consider what happens with started tours etc. This will create a lot of inconsistencies.

Investments

Besides refuels there should be other means to add investments that should be shared like oil and so on. This can work exactly like with refuels. Indeed, a refuel should be a specialisation of an investment.

Communities: Datagrid view

We need a datagrid view of communities. From here you must see all communities you are a member of, be able to create an own community and go to the details page.

  • Add Datagrid
  • Create a community (in a wizard: create community, add car, invite members)
  • Delete a community (only if owner)
  • Change community name (only if owner)

Timezone issue

Times displayed are +2h. I have to handle timezones correctly.

Add Tests

As I need version 0.1.0 to actually start managing my own car sharing community I didn't implement any tests to save time. For version 0.2.0 this is a necessary hard requirement.

Reocurring Tasks

There should be a notification that every XXX km a task like "Check Oil" has to be performed. Details are to be outlined here when the feature is about to be implemented.

Requirements:

  • Task model
  • Create task resource
  • Update task resource
  • Delete task resource
    • Must delete task instances
  • Get task resource
  • Get community tasks resource
  • Task instance model
  • Don't allow km start trigger to be lower then highest current km
  • Tour km hook for creating km triggered task instances
  • Don't add new task instances when new ones exist?
  • Flask cronjob for creating time triggered task instances
  • Finish task instance resource
  • Get open community tasks resource
  • Create Task modal
  • Task card
  • Task list
  • Task instance finished by
  • Update task modal
  • Delete task function
  • Alerts for open tasks in community alerts with finishing function
  • Notification for open tasks in notifications list
  • Marshal timedelta of tasks as integer of days
  • Conditional Plural pipe for Tage in datagrid
  • Refactor km to next instance in task resources to own def

Shared tours

I must be possible, to have shared tours in a community where more then one member pays for the tour.

Requirements

When creating a tour:

  • A tour has a driver who is the owner
  • A tour has a number of passengers, the driver is no passenger
  • All passengers must be community members
  • You can select the passengers from a typeahead in the create tour modal

When finishing a tour:

  • The list of passengers can be changed, removed passenger secondary table entries must be automatically deleted
  • You can select the passengers from a typeahead in the finish tour modal

When editing a tour:

  • The list of passengers can be changed, removed passenger secondary table entries must be automatically deleted
  • You can select the passengers from a typeahead in the finish tour modal
  • You cannot change the passenger list when the tour is not open anymore. Editing shouldn't be able then in the first place (check that again).

When cancelling a tour:

  • Passenger secondary table entries must be automatically deleted

When force finishing a tour:

  • Passengers cannot be changed

When creating a payoff:

  • The tour costs are split evenly between driver and passengers

Trigger clr form validation on submit clicks

Currently an untouched form is invalid but clarity validation messages can't be shown manually because they need a blur event on the input to trigger visibility. Clarity is planning to ship a fix for this. When this is shipped I must check if I have to call some function to make use of the new feature.

Forms to update:

  • login
  • startTour
  • finishTour
  • refuel
  • register
  • car
  • name
  • community
  • changePassword
  • resetPassword
  • forgotPassword

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.