Side Project: Project Organizer

Project Organizer - Repository

Adding a New Project

A create project request will call the .NET web API, populate the projects table with the new project, and update the SWR projects cache and backend in-memory caching systems.

Project Organizer Dashboard View

Updating the New Project

Upon the update request, a similar cascade of events takes place, except that the SWR cache needs to take extra steps. These steps involve finding the old project in the cache, removing it, and pulling in the new project from the API.

Project Organizer Update newly created project

Deletion of the Project

The deletion request is straightforward. It removes the requested project by ID from the table and caching systems.

Project Organizer Delete newly created project Project Organizer dashboard view
React Frontend Architecture View ASP.NET Backend Architecture View .NET Swagger View

Project Stack


Frontend

  • React - Frontend Architecture
  • React Router - HTTP Navigation
  • SWR 2.0/Fetch - REST Client
  • Tailwind CSS - UI
  • MirageJS - Mock API
  • Vite/Vitest - Testing Framework
  • TypeScript - Transpiler/Type Checking

Backend

  • .NET 7 - Backend Architecture
  • Entity Framework 7+ - Code-First Database Management
  • Swagger - API Visual Testing

Project Organizer - Repository

Reasoning Behind this Project

The project organizer was a project I built to introduce myself to some of the latest technologies in the .NET and React ecosystems. This project allowed me to figure out which packages I enjoy using for testing, mocking and data mutation. I decided to pick React for the frontend because I find it the most enjoyable. It casues the least amount of resistance when building UI components. And the ecosystem of React is gigantic, providing many different tools for me to explore and find the best ones for my needs. As for the backend system and database, I find using .NET and Entity Framework to be a great combination. I absolutely despise managing migrations with EF, other than this gripe, it was very straightforward to build this project.