BitCrumble / teamflow

Workflow-tracker service for Git repositories with Github and Gitlab integration, based on Maxelweb/workflow-tracker

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[NEW] Core features

Maxelweb opened this issue · comments

Mandatory

Data

  • OAuth Github integration --> use the Github API to retrieve repo data
  • OAuth Gitlab integration --> use the Gitlab API to retrieve repo data
  • SQL-Lite or external Postgres integration --> used to store user data
  • Database organization should track: oauth user authorization, user preferences, group repos created by user.

Dashboards and features

  • Group of multiple repositories that identify a single product or groups of products
  • Small scale // Dashboard per user, where you may see the current branches that user is working on
  • Medium scale // Dashboard per repositories, where you may see the current people working in branches and their latest pushes
  • Large scale // Dashboard per group, where you may see multiple repositories dashboard

Permissions

  • The dashboards must be accessible within the correct credentials based on the OAuth integration --> if a user has access to a repo, then he can view it the dashboard (when it's revoked, if the repo is private, it will be no longer visible, obviously)
  • Group repos are within the same Git service (Github or Gitlab) --> Good idea to mix them? Maybe not...
  • A user can be signed up only with both Github and Gitlab (?) --> For Gitlab, we should ensure support for self-hosted websites. Also, while a user signed in with Github it should also be able to connect the Gitlab account and viceversa.
  • Public repos should allow public group repos to be available to everyone.
  • Private repos should not publicly available
  • Mixed public and private repos should not publicly available.

Desired

  • Multiple self-hosted websites in one Gitlab account (?)
  • Group repos can be shared (or copied) to people having the same repos
  • Single user pushes in different repositories in chronological order (limit ~5, loader with other pushes)
  • Possibility to do a snapshot of the current tracking based on the latest push of the default branch for each repository, thus versioning the product as a single entity

Optional / under consideration

  • NeDB or external MongoDB integration --> used for Data --> probably not needed
  • Webhook Github API integration
  • Webhook Gitlab API integration
  • Branch tracking based on pushes

Language and framework choice

  • Plain PHP 8 with Composer --> PHP backend, should help for higher security with OAuth communication within server and application
  • Laravel framework (PHP 8) --> For a better frontend-backend part
  • Electron --> Useful if i want to implement a desktop based application
  • PHP Lumen for API + Angular / React --> Good diversification, more work to do, more extension, less good security approach with JWT perhaps
  • NodeJS in TypeScript + React --> Completely new, much work, same security concerns as above.
  • NodeJS + Svelte --> New but curious

Deployment