StackForge é uma plataforma para conectar Learners e Mentors em uma jornada de mentoria estruturada. A proposta não é apenas encontrar mentores, mas organizar o processo completo: descoberta, pedido de mentoria, diagnóstico inicial, plano de aprendizado, execução de tarefas, feedback e reputação.
O fluxo principal do produto é:
Mentorcria conta, completa perfil, cadastraStackse fica disponível.Learnercria conta e acessa a descoberta de mentores.Learnerescolhe umaStack, informa seu objetivo e envia umMentorship Request.Mentoraceita o pedido e umaMentorshipativa é criada.Mentorpode criar umInitial Assessmentpara nivelamento.Mentorcria umLearning PlancomTasks.Learnerexecuta tarefas e recebeFeedback.- Ao final, o
Learneravalia oMentorcomRating.
- .NET 9
- C#
- ASP.NET Core Web API
- Entity Framework Core
- PostgreSQL com Npgsql
- JWT Bearer Authentication
- FluentValidation
- Argon2 para hashing de senha
- Swagger / OpenAPI
- xUnit, Shouldly, Bogus e Coverlet para testes
- Angular 20
- TypeScript
- RxJS
- SCSS
- Lucide Angular
- Jasmine/Karma para testes
- Docker Compose
- PostgreSQL 16
.
├── docs
│ ├── 01-Vision.md
│ ├── 02-Glossary.md
│ ├── 03-Requirements.md
│ ├── 04-Model_Domain.md
│ └── 05-Business_Rules.md
├── src
│ ├── api
│ │ ├── src
│ │ │ ├── StackForge.Api
│ │ │ ├── StackForge.Application
│ │ │ ├── StackForge.Domain
│ │ │ └── StackForge.Infrastructure
│ │ └── tests
│ │ ├── StackForge.Application.Tests
│ │ └── StackForge.Domain.Tests
│ └── web
│ └── stackforge-web
└── README.mdA API segue uma organização em camadas:
StackForge.Api: controllers, autenticação, autorização e configuração HTTP.StackForge.Application: casos de uso, contratos de comandos/queries, validações e resultados.StackForge.Domain: entidades, value objects, enums, erros e regras centrais de domínio.StackForge.Infrastructure: EF Core, repositórios, mapeamentos, autenticação JWT, hashing de senha e seed de dados.
Funcionalidades já implementadas:
- Cadastro de usuário com tipo de perfil.
- Login com JWT.
- Registro de perfil
MentoreLearner. - Autorização por policy:
MentorOnlyeLearnerOnly. - Cadastro de
Stacksno perfil doMentor. - Atualização de disponibilidade do
Mentor. - Busca de
Stacks. - Busca de
MentorsporStacks.
- .NET SDK 9
- Node.js compatível com Angular 20
- npm
- Docker e Docker Compose
cd src/api
docker compose up -dO PostgreSQL sobe com:
Host: localhost
Port: 5432
Database: stackforge
User: postgres
Password: postgrescd src/api
dotnet restore
dotnet run --project src/StackForge.Api/StackForge.Api.csprojEm ambiente de desenvolvimento, o Swagger fica disponível na URL configurada pelo ASP.NET Core.
cd src/web/stackforge-web
npm install
npm startPor padrão, o Angular roda em:
http://localhost:4200cd src/api
dotnet testcd src/web/stackforge-web
npm testA documentação do produto está em docs/:
01-Vision.md: visão do produto.02-Glossary.md: termos do domínio.03-Requirements.md: requisitos funcionais e não funcionais.04-Model_Domain.md: modelo de domínio.05-Business_Rules.md: regras de negócio.06-Backlog.md: backlog do produto.07-Traceabillity.md: rastreabilidade.
O projeto está em evolução. O backend já cobre identidade, perfis, stacks, disponibilidade e descoberta inicial. As próximas fases do domínio incluem Mentorship Request, Mentorship, Initial Assessment, Learning Plan, Task, Feedback e Rating.