What a cool anagram of golang+vue+aws. Yes I named the project first, then built the application based on the name.
A Vue 3 + TypeScript application for managing programming language vows, with a Go backend and PostgreSQL database.
Quick n easy brew install just && npm i && just be && just db-init-all && just fe Disclaimer: it worked on my machine <3
- Node.js (v18+)
- Go (v1.23+)
- Docker and Docker Compose
- AWS CLI configured
- VSCode (or Cursor) (recommended)
-
Set up environment files:
# Create local environment file from template cp .env.aws.template .env.aws # Edit .env.aws with your AWS configuration # DO NOT commit this file - it contains sensitive information
-
Install dependencies:
npm install
-
Start the database:
just db-up
-
Initialize the database:
just db-init-all
-
Start the backend (database + Go server):
just be
-
Start the frontend:
just fe
The application should now be running at http://localhost:5173
-
Configure AWS credentials:
aws configure
-
Generate AWS resources:
# Generate task definitions from templates just aws-generate-tasks # Set up all AWS resources just aws-setup-all
-
Verify setup:
just aws-status-all
just aws-generate-tasks
- Generate task definitions from templatesjust aws-setup-all
- Full AWS infrastructure setupjust aws-status
- Check AWS resource statusjust aws-status-all
- Detailed status of all AWS resourcesjust aws-cleanup
- Clean up AWS resourcesjust aws-teardown
- Full AWS cleanup including VPC and RDS
just fe
orjust frontend-up
- Start development servernpm run build
- Build for productionnpm run test:unit
- Run unit testsnpm run test:e2e
- Run end-to-end testsnpm run lint
- Lint codenpm run format
- Format code with Prettier
just be
orjust start
- Start both database and backendjust db-up
- Start PostgreSQL containerjust db-down
- Stop PostgreSQL containerjust db-init
- Initialize database schemajust db-restore
- Restore from seed datajust go-run
- Start Go backend serverjust db-connect
- Connect to PostgreSQL databasejust db-tables
- Show all tablesjust db-vows
- Show contents of vows tablejust db-count [table]
- Count rows in a tablejust db-clear
- Clear all vowsjust db-backup [type]
- Backup databasejust db-init-all
- Initialize schema and seed data
- Never commit
.env.aws
or.env.aws.generated
files - Use
.env.aws.template
as a reference for required environment variables - AWS credentials should be managed through AWS CLI or environment variables
- Task definitions are generated from templates to avoid committing sensitive data
- Database passwords are managed through AWS Secrets Manager