involveMINT / iMPublic

Public involveMINT repo
https://app.involvemint.io
7 stars 20 forks source link

Automate POI #193

Open QuinnNTonic opened 3 months ago

QuinnNTonic commented 3 months ago

Acceptance Criteria

Write a code that automatically checks in people on their mobile devices when they reach a defined geotagged location. When checking in, the code should start a timer. When people leave this location, the code should automatically check them out, and turn the timer off.

Frontend:
  • Use the geolocation API to determine the user's location and check if they are within the defined geotagged area.
  • Use NgRx state management to store the check-in status and timer data.
  • Dispatch an action to the store to check in when the user enters the geotagged area, and to check out when they leave.
  • Make an HTTP call to the backend to update the check-in status and timer data in the database.

Backend:

  • Use NestJs to create a RESTful API to handle the HTTP calls from the frontend.

  • Use the PostgreSQL database to store the check-in status and timer data.

  • Use the Google Cloud Run to deploy the backend.

  • The backend will have endpoints for handling check-in and check-out requests from the frontend, and for querying the check-in status and timer data from the database.

  • The backend will have a middleware that will check for the location of the user, if the user is within the defined geotagged location, it will check him in and start the timer and if he leaves the location it will stop the timer and check him out.


QuinnNTonic commented 3 months ago

Original Work Item URL

Original Work Item Details

| Created date | Created by | Changed date | Changed By | Assigned To | State | Type | Area Path | Iteration Path| |---|---|---|---|---|---|---|---|---| | 01/29/2023 03:44:11 | info | 05/19/2024 23:04:32 | info | | New | User Story | involveMINT\involveMINT | involveMINT\Tech Testing Debt |

Original Work Item JSON

```json { "fields": { "Microsoft.VSTS.Common.Priority": 2, "Microsoft.VSTS.Common.StackRank": 998385434, "Microsoft.VSTS.Common.StateChangeDate": "01/29/2023 03:44:11", "System.AssignedTo": { "displayName": "" }, "System.BoardColumn": "New", "System.BoardColumnDone": False, "System.ChangedBy": { "displayName": "info" }, "System.ChangedDate": "05/19/2024 23:04:32", "System.CommentCount": 0, "System.CreatedBy": { "displayName": "info" }, "System.CreatedDate": "01/29/2023 03:44:11", "System.Id": 614, "System.Reason": "New", "System.Rev": 6, "System.RevisedDate": "01/01/9999 00:00:00", "System.State": "New", "System.TeamProject": "involveMINT", "System.Title": "Automate POI", "System.WorkItemType": "User Story", "WEF_F54671B39AF54036B4485F04394D6594_Kanban.Column": "New", "WEF_F54671B39AF54036B4485F04394D6594_Kanban.Column.Done": False, "WEF_F54671B39AF54036B4485F04394D6594_System.ExtensionMarker": True }, "id": 614, "relations": [ ], "rev": 6, "url": "https://dev.azure.com/involvemint/1853e4bf-a341-4c37-98f5-57387729b589/_apis/wit/workItems/614" } ```