Projecta is a modern project budgeting and financial management web application. It helps individuals and teams track project expenses, organize payments, manage assets, and calculate financial standings across multiple currencies.
Project & Budget Management:
- Create and manage projects easily.
- Set primary project currencies and view live budget summaries.
Project Sharing & Collaboration:
- Share projects with team members via unique shareable links.
- Seamlessly join shared projects to collaborate on budgets, payments, and assets.
Payments & Expense Tracking:
- Log income and expenses with detailed descriptions.
- Group payments into customizable Categories and Cost Types.
- Distinguish between standard expenses, compensatory payments, and incomes.
Asset Management:
- Track physical and financial assets attached to projects.
- Monitor asset values and historical records.
Multi-Currency Support:
- Support for international currencies (USD, EUR, UAH, etc.).
- Automatic exchange rate updates integrated with the National Bank of Ukraine (NBU) provider.
Multi-Language Support (i18n):
- Full localization in English (
en) and Ukrainian (uk). - Seamless language switching powered by Intlayer.
- Full localization in English (
Secure Authentication:
- Email & password registration and login using JWT tokens.
- Google OAuth 2.0 single sign-on (SSO) integration.
Error Resilience & Modern UI:
- React Error Boundaries with localized fallback screens to prevent app crashes.
- Responsive, dark-mode ready UI built with Tailwind CSS, Lucide icons, and Shadcn UI components.
Containerized Architecture:
- Ready-to-use Docker & Docker Compose setup with Nginx reverse proxy, PostgreSQL database, and RabbitMQ message broker.
| Layer | Technologies |
|---|---|
| Frontend | React 18, Vite, React Router v7, Intlayer (i18n), Tailwind CSS, Lucide Icons, Shadcn UI |
| Backend | Go 1.26, Go-Kit, Gorilla Mux, PostgreSQL (pgx), RabbitMQ, JWT, Google OAuth |
| Infrastructure | Docker, Docker Compose, Nginx, GitLab CI/CD |
- Docker and Docker Compose
- Node.js (v22 LTS or newer) - optional for local frontend development
- Go (v1.26 or newer) - optional for local backend development
Clone the repository:
git clone https://gitlab.com/massimo-ua/projecta.git cd projectaStart all services using Docker Compose:
docker compose up -d --build
Open your browser and navigate to:
- Web Application: http://localhost (port 80)
- Direct Web UI Dev Server: http://localhost:5173
- Backend API: http://localhost:8000
To run backend unit tests with code coverage:
go test -v -coverprofile=coverage.out ./internal/... ./pkg/...To install dependencies and build the web frontend for production:
cd web-ui
npm install
npm run buildThis project is licensed under the MIT License.