This is the project skeleton for the ACT (Action/Context/Telegram) bot - a personal task management assistant.
- Go 1.25 module initialization with all required dependencies
- Clean directory structure following hexagonal architecture
- Makefile with development targets (lint, test, build, migrate)
- golangci-lint configuration with essential linters
- GitHub Actions CI/CD pipeline (lint → test)
- Local development environment with Docker Compose
- Database migrations setup with goose and users table
- Basic application template with dependency injection structure
- Domain ports and interfaces for hexagonal architecture
- All tests passing and build successful
-
Setup Environment
# Copy environment variables cp .env.example .env # Edit .env with your actual values # Set: TELEGRAM_BOT_TOKEN, OPENAI_API_KEY, etc.
-
Start Development
# Start database and redis make dev # Run migrations make migrate # Install dependencies make deps # Run tests make test # Run linters make lint
-
Build & Run
# Build the application make build # Run the application ./bin/compaso
├── cmd/app/ # Application entry point
├── internal/
│ ├── app/ # Application wiring and configuration
│ ├── domain/ # Domain models and ports (interfaces)
│ ├── usecase/ # Business logic (future)
│ └── adapters/ # External integrations (future)
├── configs/ # Configuration files
├── migrations/ # Database migrations
├── scripts/ # Utility scripts
├── deployments/ # CI/CD and deployment configs
├── test/ # Test files and fixtures
└── pkg/ # Shared utilities (future)
- Build:
make build- Compile the application - Test:
make test- Run all unit tests - Lint:
make lint- Run code quality checks - Migrate:
make migrate- Run database migrations - Dev:
make dev- Start development environment - Watch:
make watch- Start with hot reload (requires air)
This project follows Hexagonal Architecture principles:
- Domain: Core business logic and entities
- Ports: Interfaces defining boundaries
- Adapters: External system integrations
- Application: Orchestration and dependency injection
This skeleton provides the foundation for implementing the complete ACT bot functionality:
- Telegram bot integration with long polling
- User onboarding flow (
/startcommand) - Task management system
- AI-powered task planning
- Notification system with scheduling
- Analytics and observability
- Linter warnings for missing comments (will be addressed as functionality is implemented)
- Some dependencies are present but not yet used (will be utilized in future stories)
Generated: 2025-09-30
Status: Ready for next development phase