github-community-projects / github-community-projects/private-mirrors
Re-organize the project structure to isolate independent functionality and improve clarity
- Dominant language
- TypeScript
- Stars
- 196
- Forks
- 41
- Avg merge
- 1d 9h
- Merged PRs (30d)
- 4
Description
### Is your feature request related to a problem?
The current project structure can be confusing to navigate and does not make obvious where different sets of functionality are located.
### Describe the solution you'd like
We should migrate the project to a monorepo stucture with sub-packages for the UI, API, GitHub App, and Utilities. This should include breaking down files with unclear functionality into atomic files. Ex: `server/repos/controller.ts` splits into `packages/api/repos/listMirrors.ts` , `packages/api/mirrors/createMirror.ts`, etc.
### Describe alternatives you've considered
The functionality could be split out into separate repositories instead but that would introduce additional overhead and make it harder to implement cross-component changes.
### Additional context
This work should help to enable #120 since the API will be split out into it's own package that can be published separately as part of that work.
Contributor guide
Research direction
Start by mapping the current project structure and reading server/repos/controller.ts to understand which functionality belongs together. Compare it with the proposed packages for the UI, API, GitHub App, and Utilities, including the example API files. Done means the project is reorganized into those sub-packages with unclear functionality split into atomic files.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- full-stack, tooling
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100