ratsch0k / group-car Goto Github PK
View Code? Open in Web Editor NEWWebsite for managing usage and parking location of cars used in groups in Families
Website for managing usage and parking location of cars used in groups in Families
Description | As a member of a group, I want to see, who is invited to this group. |
Acceptance criterion | The list of members also lists all invited members. To differentiate between invited and actual members the invited users should be displayed differently. |
Description | As a user, I want to leave a group |
Acceptance criterion | For any member, who is not the owner, the group management dialog shows a button with which a user can leave a group |
Description | As a user, I don't want to select a group every time I load the website. And instead want, that the website remembers the car which I selected last. |
Acceptance criterion | If a group is selected the selection is stored in the local storage. And if the website loads and finds the stored selection it will automatically select that group. |
In the signup page the user can view the profile picture which is pseudo-random generated. The user can generate a new pseudo-random generated profile picture via a button press.
If the user clicks on his/her profile picture in the header a small popup is shown with a bigger version of the profile picture, the username and email address and a logout and settings button. The logout button should log the user out (functionality should be provided in this issue) and the settings button should navigate the user to a settings page where the user can configure his/her account (implement in other issue)
Description | As the owner of a group, I want to be able to transfer my ownership to another member of the group |
Acceptance criterion | In the members list the owner can transfer his/her ownership |
If the session expires the website checks if the user is logged in in an endless and fast loop until the user logs out.
Description | As a user, I want to open the group management dialog and view information about the group |
Acceptance criterion | A new button in the group menu exists with which the user can open the dialog for group management of the currently selected group. This dialog contains all information about the group. name, description, creation date, last update time |
Description | As a user, I want to be able to change account settings through an account page. |
Acceptance criterion | A new button called Settings is added to the menu, opened when clicking on the user's avatar. Clicking that button will open a new page as a dialog in which the user will be able to change account specific settings. |
Description | As a user, I want to change my password. |
Acceptance criterion | On the account management page, the user can click the button "Change Password". This opens a dialog in which the user can enter their previous password and enter a new password. When the user clicks a button "Change" their password is changed to the new one. Clicking "Cancel" will cancel that process. |
The main page of the website should contain a map which the user can view.
Map library Leaflet with the react wrapper React-Leaflet
To optimize and prevent state and state bugs transition Redux
Description | As a user, I want to see all invites |
Acceptance criterion | The user popup has a new button which opens a list of all invites |
The pipeline is not up to date with the pipeline used for the backend. Refactor it to use specific tags instead of triggering on pushes to specific branches.
Description | As a user, I want to test the website ant its functionalities without creating a user account. |
Acceptance criterion | A demo mode is added that adds the ability to try out the website completely on the client without any communication with the server. |
Changes are only made on the client and stored in session storage. Authentication is partially skipped, meaning, the user is forced to log in as a specific user and cannot create an account but nothing is really authenticated.
The demo mode should only be accessible if the website is specifically built with it. Then, the built website is forced to be in demo mode. It should not be available on the default websites. This can be realized by removing code responsible for the demo mode during during the build process.
On every release that version should additionally built with demo mode active and should be pushed to a domain designated for it (demo.mygroupcar.de).
Add a disclaimer on the first visit to explain to the user that this is only a demo version of the website and that while they can use every functionality, nothing is permanently stored.
We will use the process.env.DEMO_MODE
to switch the demo mode on. If process.env.DEMO_MODE
is true, the website is built with the dem mode enabled. Without it, any code responsible for the demo mode is removed.
The demo mode should be implemented in such a way that no or almost no changes to the default mode must be made.
This is achieved by overriding calls that would normally sends requests to the server.
An alternate version of the main app component App.tsx
exists that builds the website in a slightly modified way loading the code to override requests and changing the authentication route to use an alternative version that forces a certain user. Additionally, the initial demo mode explanation page is added and shown before any other route.
Description | As a member of a group who is currently the driver of a car, I want to park that car at a specific location. |
Acceptance criterion | To the car in the drawer which the user is currently driving a new button is added with which the user can park a car. To park the car the user can either select to park it at the current location or select to click on the map to set the location. |
Description | Update and change the design to a more modern look. Make slight changes to the color, add a logo, and make overall design more consistent and more rounded. |
Acceptance criterion | The defined changes are made. |
Description | As the owner of a group, I want to be able to delete that group |
Acceptance criterion | A new button is added to the group management dialog with which the owner can delete a group |
Upgrade Project to React version 17.x and Create-React-App version to 4.x
Description | As a member of a group, I want to get real-time information when a car is added, parked or a member starts to drive it. |
Acceptance criterion | The client should establish a WebSocket connection to the server if the user selects a car. The connection should be to the namespace of the selected group. If the group is deselected the connection should be closed. The connection should listen to updat events and update the list of cars accordingly. |
Description | As a user, I want to invite users to my group |
Acceptance criterion | A new button is added to the group management dialog which lets the user invite other users to the group. This component lets a user search for the username and invite a user |
Description | As an admin of a group, I want to revoke admin permission of other members |
Acceptance criterion | In the member list an admin can revoke the admin permission of another member. |
Description | As a user, I want to update the description of a group |
Acceptance criterion | In the group management dialog the user can change the description of the group |
Due to new changes in the api the sign-up is currently not working.
Description | As a user, I want to delete a car from a group. |
Acceptance criterion | In the car overview in the group management page, a button is added to each car with which the car can be deleted from the group. This button is only visible to admins of that group. |
Description | As an admin of a group, I want to create and add a new car to the group. |
Acceptance criterion | A FAB is added to the car tab in the group management dialog. With this FAB any admin of that group can open a dialog in which they can create a new car. That car is then shown in the car tab. |
Description | As a user I want to view all members of the currently selected group. |
Acceptance criterion | The group management dialog is extended with a list of all members and their role in the group. |
Description | As a user, I want to see all cars of the group I selected in the drawer. |
Acceptance criterion | If a group is selected the drawer should display a list of all cars of that selected group. The cars should be grouped by availability. |
Description | As an admin of a group, I want to give other members admin permission |
Acceptance criterion | In the member list, an admin can give other users admin permission |
Description | As a user, I want to know that a demo version exists, so I can try it out. |
Acceptance criterion | On the authentication screen, a small message is added that references the demo website and invites the user to try it out. |
The avatar icon in the header bar will navigate to the authentication page
Description | As a member of a group, I want to drive a car. |
Acceptance criterion | For each available car in the drawer, a button is added with which the user can drive that car. |
Description | As a user, I want to create a new group |
Acceptance criterion | The create group dialog exists and if the user is not in any group the menu will show a create new group button |
Description | As a developer and user, I want to be able to see view the current version of the front- and backend to imrove tracability of errors |
Acceptance criterion | In the settings, the submenu "Info" is added in which the current version of the front- and backend is shown. This submenu should also be available with the path /settings/info |
Description | As an admin, I want to be able to kick any non-admin members |
Acceptance criterion | In the member list an admin can kick any non-admin member |
Description | As a member of a group, I want to see all cars of a group. |
Acceptance criterion | The car tab in the group management dialog will show a list of all cars. Each item will show the name, if a member drives it, and by whom, or if it's available. |
When the site loads, a simple text is displayed. Improve it to be some kind of loading animation
Description | As a member of a group, I want all parked cars of the selected group to be shown on the map with distinguishable markers. |
Acceptance criterion | If a group is selected all parked cars are marked on the map with a marker of that cars color. |
Description | As a user, I want to join a group |
Acceptance criterion | In the invite list, a user can join a group for which he/she has an invite |
Description | As a user, I want to be able to park and drive a car of a selected group as fast as possible via the fab on the map. |
Acceptance criterion | A fab is added to the screen with which the user can park and drive a car. If the user is currently driving a car, the fab can be used to park that car. If the user is not driving any car. The fab can be used to drive a car from the selected group by clicking on it and selecting a car from the dialog which will then be shown. |
Description | As a user I want to be able to select the different groups I am in. |
Acceptance criterion | In the menu a new button exists which will open a menu in which the user can select any group he/she is a member of. |
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.