2025-12-03 21:42:21 -08:00
|
|
|
# ASLE Quick Start Guide
|
|
|
|
|
|
|
|
|
|
Get up and running with the ASLE platform in minutes.
|
|
|
|
|
|
|
|
|
|
## Prerequisites
|
|
|
|
|
|
|
|
|
|
- Node.js 20+
|
|
|
|
|
- Docker and Docker Compose (optional, for local services)
|
|
|
|
|
- PostgreSQL 15+ (or use Docker)
|
|
|
|
|
- Git with submodule support
|
|
|
|
|
|
|
|
|
|
## Step 1: Clone Repository
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
# Clone with submodules (IMPORTANT!)
|
|
|
|
|
git clone --recurse-submodules https://github.com/Order-of-Hospitallers/asle.git
|
|
|
|
|
cd asle
|
|
|
|
|
|
|
|
|
|
# If you already cloned without submodules:
|
|
|
|
|
git submodule update --init --recursive
|
|
|
|
|
```
|
|
|
|
|
|
2025-12-03 22:59:57 -08:00
|
|
|
## Step 2: Configure Database
|
|
|
|
|
|
|
|
|
|
Choose one method to set up PostgreSQL:
|
|
|
|
|
|
|
|
|
|
### Option A: Docker (Recommended)
|
2025-12-03 21:42:21 -08:00
|
|
|
|
|
|
|
|
```bash
|
2025-12-03 22:59:57 -08:00
|
|
|
# Start PostgreSQL container
|
|
|
|
|
docker-compose up -d postgres
|
|
|
|
|
|
|
|
|
|
# Update backend/.env
|
|
|
|
|
DATABASE_URL="postgresql://asle:asle_password@localhost:5432/asle?schema=public"
|
2025-12-03 21:42:21 -08:00
|
|
|
```
|
|
|
|
|
|
2025-12-03 22:59:57 -08:00
|
|
|
### Option B: Local PostgreSQL
|
|
|
|
|
|
2025-12-03 21:42:21 -08:00
|
|
|
```bash
|
2025-12-03 22:59:57 -08:00
|
|
|
# Create database (requires PostgreSQL admin access)
|
|
|
|
|
sudo -u postgres psql -c "CREATE DATABASE asle;"
|
|
|
|
|
# Or: createdb asle
|
|
|
|
|
|
|
|
|
|
# Update backend/.env with your connection string
|
|
|
|
|
DATABASE_URL="postgresql://your_user:your_password@localhost:5432/asle?schema=public"
|
2025-12-03 21:42:21 -08:00
|
|
|
```
|
|
|
|
|
|
2025-12-03 22:59:57 -08:00
|
|
|
See [DATABASE_SETUP.md](./DATABASE_SETUP.md) for detailed database configuration options.
|
|
|
|
|
|
2025-12-03 21:42:21 -08:00
|
|
|
## Step 3: Backend Setup
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
cd backend
|
|
|
|
|
|
|
|
|
|
# Install dependencies
|
|
|
|
|
npm install
|
|
|
|
|
|
2025-12-03 22:59:57 -08:00
|
|
|
# Copy and configure environment
|
2025-12-03 21:42:21 -08:00
|
|
|
cp .env.example .env
|
2025-12-03 22:59:57 -08:00
|
|
|
# Edit .env with your configuration (see DATABASE_SETUP.md)
|
2025-12-03 21:42:21 -08:00
|
|
|
|
|
|
|
|
# Generate Prisma client
|
|
|
|
|
npm run prisma:generate
|
|
|
|
|
|
|
|
|
|
# Run database migrations
|
|
|
|
|
npm run prisma:migrate
|
|
|
|
|
|
|
|
|
|
# Initialize database
|
|
|
|
|
npm run setup:db
|
|
|
|
|
|
|
|
|
|
# Create admin user
|
|
|
|
|
npm run setup:admin
|
|
|
|
|
|
|
|
|
|
# Start backend (development)
|
|
|
|
|
npm run dev
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Backend will run on `http://localhost:4000`
|
|
|
|
|
|
|
|
|
|
## Step 4: Frontend Setup
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
cd ../frontend
|
|
|
|
|
|
|
|
|
|
# Install dependencies
|
|
|
|
|
npm install
|
|
|
|
|
|
2025-12-03 22:59:57 -08:00
|
|
|
# Copy and configure environment
|
2025-12-03 21:42:21 -08:00
|
|
|
cp .env.example .env.local
|
|
|
|
|
# Edit .env.local with your configuration
|
|
|
|
|
|
|
|
|
|
# Start frontend (development)
|
|
|
|
|
npm run dev
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Frontend will run on `http://localhost:3000`
|
|
|
|
|
|
|
|
|
|
## Step 5: Deploy Contracts (Optional)
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
cd ../contracts
|
|
|
|
|
|
|
|
|
|
# Install Foundry dependencies
|
|
|
|
|
forge install
|
|
|
|
|
|
|
|
|
|
# Build contracts
|
|
|
|
|
forge build
|
|
|
|
|
|
|
|
|
|
# Run tests
|
|
|
|
|
forge test
|
|
|
|
|
|
|
|
|
|
# Deploy (see DEPLOYMENT.md for details)
|
|
|
|
|
forge script script/Deploy.s.sol:DeployScript --rpc-url $RPC_URL --broadcast --private-key $PRIVATE_KEY
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Step 6: Access the Application
|
|
|
|
|
|
|
|
|
|
- **Frontend Dashboard**: http://localhost:3000
|
|
|
|
|
- **Admin Dashboard**: http://localhost:3000/admin
|
|
|
|
|
- **User DApp**: http://localhost:3000/dapp
|
|
|
|
|
- **Backend API**: http://localhost:4000/api
|
|
|
|
|
- **GraphQL Playground**: http://localhost:4000/graphql
|
|
|
|
|
|
|
|
|
|
## Common Issues
|
|
|
|
|
|
|
|
|
|
### Submodules Not Cloned
|
|
|
|
|
|
|
|
|
|
If you see empty `contracts/` or `frontend/` directories:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
git submodule update --init --recursive
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### Database Connection Error
|
|
|
|
|
|
|
|
|
|
1. Verify PostgreSQL is running
|
|
|
|
|
2. Check `DATABASE_URL` in `backend/.env`
|
|
|
|
|
3. Ensure database exists: `createdb asle`
|
|
|
|
|
|
|
|
|
|
### Port Already in Use
|
|
|
|
|
|
|
|
|
|
Change `PORT` in `backend/.env` or kill the process:
|
|
|
|
|
```bash
|
|
|
|
|
lsof -i :4000
|
|
|
|
|
kill -9 <PID>
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### Missing Dependencies
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
# Backend
|
|
|
|
|
cd backend && npm install
|
|
|
|
|
|
|
|
|
|
# Frontend
|
|
|
|
|
cd frontend && npm install
|
|
|
|
|
|
|
|
|
|
# Contracts
|
|
|
|
|
cd contracts && forge install
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Next Steps
|
|
|
|
|
|
|
|
|
|
1. **Configure Environment**: Update all `.env` files with your API keys and configuration
|
|
|
|
|
2. **Deploy Contracts**: Deploy smart contracts to your target network
|
|
|
|
|
3. **Set Up KYC/AML**: Configure KYC/AML provider credentials (optional)
|
|
|
|
|
4. **Configure Push Notifications**: Set up push notification providers (optional)
|
|
|
|
|
5. **Review Documentation**: See [README.md](./README.md) and [DEPLOYMENT.md](./DEPLOYMENT.md)
|
|
|
|
|
|
|
|
|
|
## Development Workflow
|
|
|
|
|
|
|
|
|
|
### Making Changes
|
|
|
|
|
|
|
|
|
|
1. **Backend Changes**: Edit files in `backend/src/`, changes auto-reload with `npm run dev`
|
|
|
|
|
2. **Frontend Changes**: Edit files in `frontend/app/` or `frontend/components/`, changes auto-reload
|
|
|
|
|
3. **Contract Changes**: Edit files in `contracts/src/`, run `forge build` and `forge test`
|
|
|
|
|
|
|
|
|
|
### Running Tests
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
# Backend tests
|
|
|
|
|
cd backend && npm test
|
|
|
|
|
|
|
|
|
|
# Contract tests
|
|
|
|
|
cd contracts && forge test
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### Database Migrations
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
cd backend
|
|
|
|
|
npm run prisma:migrate dev --name migration_name
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Production Deployment
|
|
|
|
|
|
|
|
|
|
See [DEPLOYMENT.md](./DEPLOYMENT.md) for detailed production deployment instructions.
|
|
|
|
|
|
|
|
|
|
## Getting Help
|
|
|
|
|
|
|
|
|
|
- **Documentation**: See `docs/` directory
|
|
|
|
|
- **API Reference**: See [API_DOCUMENTATION.md](./API_DOCUMENTATION.md)
|
|
|
|
|
- **Project Structure**: See [PROJECT_STRUCTURE.md](./PROJECT_STRUCTURE.md)
|
|
|
|
|
- **Submodules**: See [SUBMODULE_SETUP.md](./SUBMODULE_SETUP.md)
|
|
|
|
|
|