Node.js (v18 or higher)
node --version
# Should show v18.x.x or higher
Bun (v1.1.20 or higher)
curl -fsSL https://bun.sh/install | bash
source ~/.bashrc
bun --version
# Should show 1.1.20 or higher
Git
git --version
AWS CLI (optional for local dev)
aws --version
aws configure # Set up credentials if needed
Clone repository
git clone <repository-url>
cd macpro-mako
Install dependencies
bun install
Verify installation
bun run test-tsc # Should pass without errors
Create environment file
cp .env.example .env # If example exists
# Or create .env manually
Set local environment variables
# Add to .env file
PROJECT="your-project-name"
STAGE="local"
REGION_A="us-east-1"
Start frontend development server
bun run bun:dev
# Should start on http://localhost:5000
Verify frontend loads
Run tests to verify setup
bun run test
# Should pass all tests
Docker (if needed for local services)
docker --version
Local database (if needed)
# Set up local OpenSearch or other database
AWS Account with appropriate permissions
AWS CLI configuration
aws configure
# Enter your AWS Access Key ID
# Enter your AWS Secret Access Key
# Enter your default region (e.g., us-east-1)
Verify AWS credentials
aws sts get-caller-identity
# Should show your account ID and user info
Install AWS CDK globally
npm install -g aws-cdk
cdk --version
Bootstrap CDK (first time only)
cdk bootstrap
# This sets up S3 bucket and IAM roles for CDK
Create project-default secret
aws secretsmanager create-secret \
--name "your-project-default" \
--secret-string '{
"brokerString": "your-kafka-broker-string",
"dbInfoSecretName": "your-db-secret-name",
"devPasswordArn": "arn:aws:secretsmanager:region:account:secret:name",
"domainCertificateArn": "arn:aws:acm:region:account:certificate/cert-id",
"domainName": "your-domain.com",
"emailAddressLookupSecretName": "email-lookup-secret",
"notificationSecretName": "notification-secret",
"notificationSecretArn": "arn:aws:secretsmanager:region:account:secret:name",
"googleAnalyticsDisable": false,
"googleAnalyticsGTag": "G-XXXXXXXXXX",
"iamPath": "/your-project/",
"iamPermissionsBoundary": "arn:aws:iam::account:policy/boundary",
"idmAuthzApiEndpoint": "https://your-idm-endpoint",
"idmAuthzApiKeyArn": "arn:aws:secretsmanager:region:account:secret:name",
"idmClientId": "your-idm-client-id",
"idmClientIssuer": "https://your-idm-issuer",
"idmClientSecretArn": "arn:aws:secretsmanager:region:account:secret:name",
"idmEnable": false,
"idmHomeUrl": "https://your-idm-home-url",
"legacyS3AccessRoleArn": "arn:aws:iam::account:role/legacy-s3-access",
"useSharedOpenSearch": false,
"vpcName": "your-vpc-name"
}'
Create stage-specific secret (optional)
aws secretsmanager create-secret \
--name "your-project-local" \
--secret-string '{
"stage": "local",
"isDev": true
}'
export PROJECT="your-project-name"
export REGION_A="us-east-1"
export CDK_DEFAULT_ACCOUNT="your-aws-account-id"
export CDK_DEFAULT_REGION="us-east-1"
export STAGE="local" # or dev, val, production
Deploy to local stage
cdk deploy -c stage=local
# This will create all AWS resources
Verify deployment
# Check CloudFormation stacks
aws cloudformation list-stacks --stack-status-filter CREATE_COMPLETE UPDATE_COMPLETE
# Check deployed resources
cdk list
Get deployment outputs
# Get deployment configuration
aws ssm get-parameter --name "/your-project/local/deployment-output"
Configure Git user
git config user.name "Your Name"
git config user.email "[email protected]"
Set up Git hooks (if any)
# Check for pre-commit hooks
ls -la .git/hooks/
VS Code (recommended)
Configure workspace settings
// .vscode/settings.json
{
"typescript.preferences.importModuleSpecifier": "relative",
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
}
}
Verify test environment
bun run test
# Should run all unit tests successfully
Verify E2E tests
bun run e2e
# Should run all end-to-end tests
Check test coverage
bun run test:coverage
# Should generate coverage report
Deploy to validation environment
cdk deploy -c stage=val
Run smoke tests on validation
Deploy to production
cdk deploy -c stage=production
Verify production deployment
# Check all systems
bun run test-tsc # TypeScript compilation
bun run test # Unit tests
bun run e2e # End-to-end tests
bun run lint # Code linting
bun run format:check # Code formatting
# Check AWS resources
cdk list # List all stacks
cdk diff # Show pending changes
aws cloudformation describe-stacks --stack-name your-project-local
# Check frontend
curl -I http://localhost:5000
# Check API (if deployed)
curl -I https://your-api-gateway-url/health
# Check database connectivity
# (Use AWS console or CLI to verify OpenSearch)
curl -fsSL https://bun.sh/install | bashcdk bootstrap firstrm -rf node_modules/.cacheaws sts get-caller-identityNote: This checklist should be completed in order. Each section builds upon the previous one. If you encounter issues at any step, resolve them before proceeding to the next step.