You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Restructure the ca-biositing repository to support a full-stack web application architecture with three main components:
Backend API - REST API for data access and business logic
ETL Pipeline - Data ingestion from Google Sheets and other sources
Frontend - Web interface (as a Git submodule from separate repository)
Motivation
The current repository structure is primarily organized around the ETL pipeline (etl_merge/my_etl_project/), with limited organization for a full-stack web application. Though it looks like @petercarbsmith is working on separating these out as I write this proposal (See #46).
As we expand to include a backend API and frontend interface, we need a clear separation of concerns that:
Enables independent development and deployment of each component
Shares common code (database models) between API and ETL
Maintains clear boundaries and responsibilities
Supports scalable team collaboration
Facilitates testing at unit, component, and integration levels
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
-
Summary
Restructure the
ca-biositingrepository to support a full-stack web application architecture with three main components:Motivation
The current repository structure is primarily organized around the ETL pipeline (
etl_merge/my_etl_project/), with limited organization for a full-stack web application. Though it looks like @petercarbsmith is working on separating these out as I write this proposal (See #46).As we expand to include a backend API and frontend interface, we need a clear separation of concerns that:
Proposed Structure
NOTE: The structure above is merely a suggestion and not the exact files/folders that needs to be created.
Key Design Decisions
Shared Models Strategy
Both the backend API and ETL pipeline need access to the same database models. Options considered:
shared/models/imported by bothDecision: Use
shared/directory for database models, database connection logic, and common utilities.Frontend Repository Strategy
Options considered:
Decision: Use Git submodule for frontend, enabling independent development while maintaining version coordination.
Docker Orchestration
docker-compose.ymlorchestrates all servicesDockerfilefor independenceEnvironment Management
.env.examplefor required variablesMigration Risks & Mitigations
git mvto preserve historyBenefits
Success Criteria
docker-compose upcommandReferences
etl_merge/my_etl_project/Related Issue and PR
Beta Was this translation helpful? Give feedback.
All reactions