A full-stack application for managing tax obligations, compliance deadlines and company obligations.
Developed as a technical assessment using .NET 9, React, TypeScript, PostgreSQL, Docker and AI-assisted development.
- Full Stack Application (.NET 9 + React + PostgreSQL)
- Docker Compose environment
- Swagger API documentation
- CSV Export
- Status Filtering
- AI-Assisted Development
- Register companies
- List companies
- Delete companies
- Tax regime classification
- Generate obligations based on tax regime rules
- View obligations by company
- Mark obligations as delivered
- Track obligation status
- Total companies
- Total obligations
- Pending obligations
- Delivered obligations
- Overdue obligations
- Overdue obligations
- Upcoming obligations due within the next 30 days
- Status filtering
- CSV export
- Docker Compose environment
- .NET 9
- ASP.NET Core Minimal APIs
- Entity Framework Core
- PostgreSQL 16
- React
- TypeScript
- Vite
- Ant Design
- Axios
- Docker
- Docker Compose
- Nginx
React Frontend
|
v
.NET 9 REST API
|
v
PostgreSQL
Fica melhor no GitHub.
---
### 3. Adicionar Docker Compose na execução
Depois de:
```bash
docker compose up --build
This command starts:
- PostgreSQL Database
- .NET 9 API
- React Frontend (served by Nginx)
The application follows a layered architecture:
* Domain
* Application
* Infrastructure
* API
---
## Running the Project
### Prerequisites
* Docker Desktop
### Start Application
```bash
docker compose up --build
Frontend
Swagger
- Simples Nacional
- Lucro Presumido
- Lucro Real
- Imunidade / Isenção
Obligations are generated automatically according to the selected tax regime.
Alerts are generated for:
- Overdue obligations
- Pending obligations due within the next 30 days
This project was developed using an AI-assisted workflow.
AI was used to accelerate:
- Architecture discussions
- Frontend implementation
- Docker configuration
- Documentation
- Troubleshooting and code review
All business rules, architectural decisions, testing, debugging and final validation were performed manually.
The goal was not to replace engineering judgment, but to improve productivity and focus on delivering a better solution.
This approach allowed faster delivery while maintaining engineering quality, business rule validation and architectural consistency.
Edemar Costa Oliveira
Senior Full Stack Software Engineer