Development
Goiabada was developed in Go using Linux. The GitHub repository includes a VS Code dev container with all dependencies pre-configured.
Quick start
Section titled “Quick start”- Clone the repository
- Install Microsoft’s Dev Containers extension
- Open the repository in the dev container
- Run
make servefrom thesrc/authserverdirectory - Run
make servefrom thesrc/adminconsoledirectory (in another terminal)
You now have a running Goiabada instance accessible at:
- Auth server: http://localhost:19090
- Admin console: http://localhost:19091
Default credentials:
- Email: [email protected]
- Password: changeme
AI-assisted development
Section titled “AI-assisted development”The repository includes a CLAUDE.md file at the root with detailed architecture documentation, authentication flow state machines, OAuth2 implementation details, and coding patterns. This file is designed to help AI coding assistants (like Claude, Cursor, or GitHub Copilot) understand the codebase quickly.
Project structure
Section titled “Project structure”src/├── authserver/ # Auth server application│ ├── cmd/ # Entry point│ ├── internal/ # Internal packages│ ├── tests/ # Integration tests│ └── web/ # Templates and static files├── adminconsole/ # Admin console application│ ├── cmd/ # Entry point│ ├── internal/ # Internal packages│ └── web/ # Templates and static files├── core/ # Shared code between applications└── build/ # Docker and build scriptsRunning tests
Section titled “Running tests”To run the complete test suite (100% of tests):
cd src/authserver./run-tests.shThis script will:
- Run unit tests for authserver, adminconsole, and core modules
- Run data layer tests against all supported databases (MySQL, PostgreSQL, SQL Server, SQLite)
- Run integration tests against all supported databases
- Automatically handle server startup/shutdown and cleanup
Technology stack
Section titled “Technology stack”| Component | Technology |
|---|---|
| Language | Go |
| HTTP Router | Chi |
| SQL Builder | go-sqlbuilder |
| CSS Framework | Tailwind CSS with DaisyUI |
| Database | MySQL, PostgreSQL, SQL Server, SQLite |
Contributing
Section titled “Contributing”Bug reports and pull requests are encouraged. Looking to contribute? Pick an issue from the GitHub issues page and get started. You can reach out at [email protected].