github-community-projects / github-community-projects/private-mirrors

Re-organize the project structure to isolate independent functionality and improve clarity

Open
#476 0 comments 1 reaction 0 assignees View on GitHub
enhancement
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.