An interactive CV/portfolio application built with React frontend and .NET backend with SQL Server database.
- Interactive CV Page: Showcase personal information, bio, and social links
- Project Gallery: Display all projects with images, descriptions, and links
- Project Details: Detailed view of each project with code snippets and explanations
- Live Demos: Links to live project demonstrations
- Code Showcase: Display code snippets with explanations
- React 19
- React Router DOM
- Vite
- CSS3
- .NET 9.0
- ASP.NET Core Web API
- Entity Framework Core
- SQL Server
Before running this application, ensure you have the following installed:
- Node.js (v20.18.2 or higher) and npm
- .NET SDK (9.0 or higher)
- SQL Server (LocalDB or Express) or SQL Server
- Git
git clone <repository-url>
cd diegosantoscvNavigate to the backend directory:
cd backend/CvApiEdit appsettings.json to update the SQL Server connection string if needed:
{
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=CvDb;Trusted_Connection=True;MultipleActiveResultSets=true"
}
}Run Entity Framework migrations to create the database:
dotnet ef database updatedotnet runThe API will be available at https://localhost:7000 (or the port shown in the console).
Navigate to the frontend directory:
cd frontendnpm installEdit src/services/api.js and update the API_BASE_URL if your backend runs on a different port:
const API_BASE_URL = 'https://localhost:7000/api';npm run devThe frontend will be available at http://localhost:5173 (or the port shown in the console).
diegosantoscv/
├── backend/
│ └── CvApi/
│ ├── Controllers/ # API controllers
│ ├── Data/ # DbContext
│ ├── Models/ # Data models
│ └── Migrations/ # EF migrations
├── frontend/
│ └── src/
│ ├── components/ # React components
│ ├── services/ # API service
│ └── App.jsx # Main app component
└── README.md
GET /api/CvInfo- Get CV informationPOST /api/CvInfo- Create CV informationPUT /api/CvInfo/{id}- Update CV information
GET /api/Projects- Get all projectsGET /api/Projects/{id}- Get project by IDPOST /api/Projects- Create a new projectPUT /api/Projects/{id}- Update a projectDELETE /api/Projects/{id}- Delete a project
When running in development mode, Swagger UI is available at:
https://localhost:7000/swagger
You can add CV information and projects through:
- The Swagger UI (development mode)
- Direct SQL queries to the database
- Creating a seed data script
- Id (Primary Key)
- Name
- Title
- Bio
- LinkedInUrl
- GitHubUrl
- ProfileImageUrl
- CreatedAt
- UpdatedAt
- Id (Primary Key)
- Title
- Description
- LiveUrl
- RepositoryUrl
- ImageUrl
- CodeSnippet
- CodeExplanation
- Technologies (comma-separated)
- DisplayOrder
- CreatedAt
- UpdatedAt
- Open two terminal windows
- In the first terminal, run the backend:
cd backend/CvApi dotnet run - In the second terminal, run the frontend:
cd frontend npm run dev
This project is for personal/portfolio use.