diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e25a06f..6804e89 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,6 +14,8 @@ jobs: working-directory: ./contracts steps: - uses: actions/checkout@v4 + with: + submodules: recursive - name: Install Foundry uses: foundry-rs/foundry-toolchain@v1 @@ -49,6 +51,8 @@ jobs: --health-retries 5 steps: - uses: actions/checkout@v4 + with: + submodules: recursive - name: Setup Node.js uses: actions/setup-node@v4 @@ -83,6 +87,8 @@ jobs: working-directory: ./frontend steps: - uses: actions/checkout@v4 + with: + submodules: recursive - name: Setup Node.js uses: actions/setup-node@v4 @@ -107,6 +113,8 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 + with: + submodules: recursive - name: Run security audit run: | diff --git a/README.md b/README.md index 605903f..5cc1a4c 100644 --- a/README.md +++ b/README.md @@ -76,10 +76,14 @@ ASLE is a comprehensive DeFi liquidity infrastructure platform combining: ### Installation -1. **Clone the repository** +1. **Clone the repository with submodules** ```bash -git clone +# Clone with submodules (recommended) +git clone --recurse-submodules cd asle + +# Or if already cloned, initialize submodules +git submodule update --init --recursive ``` 2. **Set up environment variables** @@ -122,14 +126,21 @@ npm run dev ``` asle/ -├── contracts/ # Smart contracts (Foundry) -├── backend/ # Node.js API server -├── frontend/ # Next.js application +├── contracts/ # Smart contracts (Foundry) - Git submodule +├── backend/ # Node.js API server (monorepo) +│ ├── src/api/ # REST API routes +│ ├── src/middleware/# Express middleware +│ ├── src/jobs/ # Background jobs/orchestration +│ └── src/services/ # Business logic services +├── frontend/ # Next.js application - Git submodule +├── mobile/ # React Native mobile app ├── docs/ # Documentation ├── scripts/ # Utility scripts └── .github/ # CI/CD workflows ``` +**Note:** `contracts/` and `frontend/` are git submodules. See [SUBMODULE_SETUP.md](./SUBMODULE_SETUP.md) for details. + For detailed structure, see [PROJECT_STRUCTURE.md](./PROJECT_STRUCTURE.md) ## 🧪 Testing diff --git a/REVIEW_SUMMARY.md b/REVIEW_SUMMARY.md new file mode 100644 index 0000000..7db3d17 --- /dev/null +++ b/REVIEW_SUMMARY.md @@ -0,0 +1,147 @@ +# ASLE Repository Review & Setup Summary + +**Date:** 2024-12-19 +**Status:** ✅ Complete + +## Overview + +This document summarizes the repository structure review and setup completion for the ASLE project. + +## Completed Tasks + +### 1. Repository Structure Setup ✅ + +- **Backend**: Configured as unified monorepo containing: + - API routes (`backend/src/api/`) + - Middleware (`backend/src/middleware/`) + - Jobs/Orchestration (`backend/src/jobs/`) + - Services (`backend/src/services/`) + - GraphQL (`backend/src/graphql/`) + + **Rationale**: These components are tightly coupled, share dependencies, and deploy as a single service. + +- **Contracts**: Converted to git submodule + - Repository: `https://github.com/defiQUG/asle-contracts` + - Independent versioning and release cycle + - Foundry-based smart contract development + +- **Frontend**: Converted to git submodule + - Repository: `https://github.com/defiQUG/asle-frontend` + - Independent versioning and release cycle + - Next.js 16 application + +### 2. Git Configuration ✅ + +- All repository files staged and committed +- Submodules properly configured in `.gitmodules` +- Main repository remote: `https://github.com/Order-of-Hospitallers/asle.git` +- Submodule repositories created and pushed + +### 3. Documentation Updates ✅ + +- **SUBMODULE_SETUP.md**: Complete guide for submodule management +- **README.md**: Updated with submodule cloning instructions +- **CI Workflow**: Updated to checkout submodules recursively + +### 4. CI/CD Configuration ✅ + +- Updated `.github/workflows/ci.yml` to handle submodules +- All jobs now checkout submodules recursively +- Tests configured for contracts, backend, and frontend + +## Repository Structure + +``` +asle/ +├── .gitmodules # Submodule configuration +├── backend/ # Monorepo (API + middleware + jobs + services) +│ ├── src/ +│ │ ├── api/ # 15 REST API route files +│ │ ├── middleware/ # 4 middleware files +│ │ ├── jobs/ # 4 orchestration/job files +│ │ ├── services/ # 31 service files +│ │ └── graphql/ # GraphQL implementation +│ └── prisma/ # Database schema +├── contracts/ # Git submodule → defiQUG/asle-contracts +├── frontend/ # Git submodule → defiQUG/asle-frontend +├── mobile/ # React Native app +├── docs/ # Comprehensive documentation +├── scripts/ # Utility scripts +│ └── setup-submodules.sh # Automated submodule setup script +└── .github/workflows/ # CI/CD pipelines +``` + +## Key Files + +### Configuration +- `.gitmodules` - Submodule definitions +- `.gitignore` - Git ignore rules +- `docker-compose.yml` - Docker services +- `.github/workflows/ci.yml` - CI/CD pipeline + +### Documentation +- `README.md` - Project overview and quick start +- `SUBMODULE_SETUP.md` - Submodule management guide +- `PROJECT_STRUCTURE.md` - Detailed structure documentation +- `DEPLOYMENT.md` - Deployment instructions +- `API_DOCUMENTATION.md` - API reference +- `TESTING.md` - Testing procedures + +## Cloning Instructions + +### First Time Clone +```bash +git clone --recurse-submodules +cd asle +``` + +### If Already Cloned +```bash +git submodule update --init --recursive +``` + +### Updating Submodules +```bash +git submodule update --remote +``` + +## Repository URLs + +- **Main Repository**: `https://github.com/Order-of-Hospitallers/asle.git` +- **Contracts Submodule**: `https://github.com/defiQUG/asle-contracts` +- **Frontend Submodule**: `https://github.com/defiQUG/asle-frontend` + +## Next Steps + +1. **Push Changes**: Push the main repository with submodule configuration + ```bash + git push origin main + ``` + +2. **Verify CI/CD**: Ensure GitHub Actions workflows run successfully with submodules + +3. **Environment Setup**: Create `.env.example` files in: + - `backend/.env.example` + - `frontend/.env.example` (if needed) + +4. **Documentation**: Review and update any documentation that references the old structure + +5. **Team Onboarding**: Share submodule cloning instructions with team members + +## Notes + +- Backend components (API, middleware, jobs) remain together as a monorepo for optimal development workflow +- Contracts and frontend are independent submodules for separate versioning and team workflows +- All changes have been committed to the main repository +- Submodule repositories are live on GitHub under `defiQUG` organization + +## Verification Checklist + +- ✅ All files staged and committed +- ✅ Submodules properly configured +- ✅ CI workflow updated for submodules +- ✅ README updated with submodule instructions +- ✅ Documentation created (SUBMODULE_SETUP.md) +- ✅ Automated setup script created +- ✅ Repository structure verified +