-
-
Notifications
You must be signed in to change notification settings - Fork 53
Code base improvements #509
Description
Is your feature request related to a problem? Please describe.
This is not really a feature to the app itself but a structural improvement.
This project currently has a very messy codebase which makes onboarding quite messy and much harder.
Describe the solution you'd like
A cleaner and clearer structure to the code base.
A clear separation from frontend and backend.
Exampel:
Workspace
├─ App:
│ ├─ Backend:
│ │ ├─ src (all source for backend only)/
│ │ │ ├─ api/
│ │ │ ├─ main.py
│ │ │ ├─ init.py
│ │ │ └─ All other files dirs etc
│ │ ├─ tests(only tests for backend) /
│ │ ├─ docs(backend docs only)/
│ │ ├─ script (backend specific)/
│ │ ├─ Dockerfile
│ │ ├─ pyproject.toml
│ │ └─ any additional files
│ └─ Frontend:
│ ├─ src (all source for frontend only)/
│ │ ├─ client/ (api from bkend)
│ │ ├─ Components/
│ │ └─ All other files dirs etc
│ ├─ tests(only tests for frontend) /
│ ├─ docs(front docs only)/
│ ├─ script (front specific)/
│ ├─ Dockerfile
│ └─ any additional files
│
├─ Scripts (global scripts)/
│ ├─ Test (init scripts for tests)/
│ │ ├─ test_build.sh
│ │ ├─ test_frontend.sh
│ │ ├─ test_backend.sh
│ │
│ ├─ Build (Build scripts)/
│
├─ Docker(different dockerfile)/
├─ Setup.sh (simply to setup env)
├─ docker_run.py (simple cli docker run)
Describe alternatives you've considered
Helping with the structuring, though it would be a big need to separate the base frontend and backend from each other.
Additional context
The reason for such restructuring is simple:
- Easier onboarding
- Greater separation of concern
- Clear structure makes it easier to maintain.
- Easier to focus on either front or backend
- Independent builds.