Full-stack application with .NET 10.0 backend and React + MUI frontend.
Full-stack application with Clean Architecture demonstrating:
- Task Manager (TODO): Task management with priorities, due dates, and status tracking
- URL Shortener: Short URL generation with click tracking and analytics
- Authentication: JWT-based auth with refresh tokens
- Create, edit, and delete tasks
- Priority levels (Low, Medium, High)
- Due date tracking
- Status management (Pending, In Progress, Completed)
- Overdue and critical task detection
- Custom short code generation
- Click tracking and analytics
- High-performance statistics queries using Dapper
- Automatic redirection with click registration
- JWT-based authentication with access and refresh tokens
- Secure password hashing
- Token refresh and revocation
| Component | Technology |
|---|---|
| Framework | ASP.NET Core 10.0 |
| Language | C# 12 |
| ORM | Entity Framework Core 10.0 |
| Query Performance | Dapper 2.1.72 |
| Authentication | JWT Bearer Tokens |
| Database | SQL Server Express |
| API Documentation | Swagger/OpenAPI |
| Component | Technology |
|---|---|
| Framework | React 19 |
| Language | TypeScript 6.0 |
| Build Tool | Vite 8.0 |
| UI Library | Material-UI 9.0 |
| Routing | React Router 7 |
- .NET 10.0 SDK
- SQL Server Express
- Node.js 18+ (for frontend)
- Git
- Clone the repository
git clone https://github.com/PushoDev/Proyecto-Personal-Recordando.git
cd Proyecto-Personal-Recordando- Restore and build
dotnet restore ProyectoPersonal.slnx
dotnet build ProyectoPersonal.slnx- Configure database
Update ApiProyecto/appsettings.json:
{
"ConnectionStrings": {
"DefaultConnection": "Server=.\\SQLEXPRESS;Database=ProyectoPersonalDb;Trusted_Connection=True;TrustServerCertificate=True;MultipleActiveResultSets=true"
}
}- Run migrations
dotnet ef database update --project Infraestructura --startup-project ApiProyecto- Start backend
cd ApiProyecto
dotnet runAPI: http://localhost:5241
- Start frontend
cd frontend
npm install
npm run devFrontend: http://localhost:5173
Clean Architecture with 4 layers:
ProyectoPersonal/
├── ApiProyecto/ # Controllers, Program.cs, Configuration
├── Application/ # Use cases, Services, DTOs
├── Domain/ # Entities, Interfaces
└── Infraestructura/ # EF Core, Repositories, Migrations
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/auth/register |
Register user |
| POST | /api/auth/login |
Login |
| POST | /api/auth/refresh |
Refresh token |
| POST | /api/auth/revoke |
Revoke token |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/recursos |
List tasks |
| GET | /api/recursos/{id} |
Get task |
| POST | /api/recursos |
Create task |
| PUT | /api/recursos/{id} |
Update task |
| DELETE | /api/recursos/{id} |
Delete task |
| PUT | /api/recursos/{id}/stock |
Update stock |
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/urlshortener/shorten |
Create short URL |
| GET | /api/urlshortener/{code} |
Redirect |
| GET | /api/urlshortener/{code}/stats |
Statistics |
Swagger: http://localhost:5241/swagger
MIT License


