# Tools & Technologies Used

## 🧰 Technology Stack

#### 🔧 Backend

* **Language & Runtime**: C# on .NET 9.0
* **Web Framework**: ASP.NET Core Web API
* **Database**: Microsoft SQL Server
* **ORM & Data Access**: Entity Framework Core with SQL Server provider
* **Testing Framework**: xUnit

#### 🎨 Frontend

* **Framework & Runtime**: Next.js 15
* **Language**: TypeScript
* **Styling**: Tailwind CSS (via PostCSS)
* **UI Library:** HeroUI

#### 🖌️ UI/UX Design

* Figma

## 📦 Packages & Libraries

### 🛠️ Backend Packages & Libraries

<table><thead><tr><th width="233">Package Name</th><th width="393">Usage</th><th width="121">License</th></tr></thead><tbody><tr><td>MediatR</td><td>Implement the mediator pattern for request/response handling</td><td>MIT</td></tr><tr><td>FluentValidation</td><td>Define and enforce server-side validation rules</td><td>Apache-2.0</td></tr><tr><td>ASP.NET Core OpenAPI</td><td>Generate OpenAPI definitions automatically</td><td>MIT</td></tr><tr><td>Swashbuckle (Swagger)</td><td>Auto-generate Swagger UI and JSON documentation</td><td>MIT</td></tr><tr><td>Scalar</td><td>Enrich Swagger UI with additional metadata/examples</td><td>MIT</td></tr><tr><td>ErrorOr</td><td>Model results as success/failure in a unified type</td><td>MIT</td></tr><tr><td>Throw</td><td>Fluent helpers for throwing exceptions</td><td>MIT</td></tr><tr><td>Serilog</td><td>Structured logging core library</td><td>Apache-2.0</td></tr><tr><td>BCrypt.Net Next</td><td>Hash and verify passwords using the BCrypt algorithm</td><td>MIT</td></tr><tr><td>Newtonsoft JSON</td><td>JSON serialization and deserialization</td><td>MIT</td></tr><tr><td>FluentEmail SMTP</td><td>Compose and send emails via SMTP</td><td>MIT</td></tr><tr><td>Refit HttpClientFactory</td><td>Generate type-safe REST API clients from interfaces</td><td>MIT</td></tr><tr><td>Google Drive .NET API</td><td>Interact with files in Google Drive</td><td>Apache-2.0</td></tr><tr><td>.NET Test SDK</td><td>Host, discover, and run .NET tests</td><td>MIT</td></tr><tr><td>xUnit</td><td>Unit testing framework</td><td>Apache-2.0</td></tr><tr><td>NSubstitute</td><td>Create mocks and stubs for unit tests</td><td>BSD-3</td></tr><tr><td>FluentAssertions</td><td>Write expressive, fluent test assertions</td><td>Apache-2.0</td></tr><tr><td>Coverlet Collector</td><td>Collect code coverage metrics during test execution</td><td>MIT</td></tr><tr><td>ReportGenerator</td><td>Produce human-readable coverage reports</td><td>MIT</td></tr></tbody></table>

### 🎨 Frontend Packages

<table><thead><tr><th width="196">Package Name</th><th width="437">Usage</th><th>License</th></tr></thead><tbody><tr><td>Next.js</td><td>Framework for SSR, SSG, and routing on top of React</td><td>MIT</td></tr><tr><td>React</td><td>Build declarative UI components</td><td>MIT</td></tr><tr><td>HeroUI</td><td>UI library</td><td>MIT</td></tr><tr><td>Tailwind CSS</td><td>Utility-first CSS framework</td><td>MIT</td></tr><tr><td>PostCSS</td><td>Transform CSS with plugins</td><td>MIT</td></tr><tr><td>ESLint</td><td>Identify and report on code issues</td><td>MIT</td></tr><tr><td>Next.js ESLint Config</td><td>Enforce Next.js–specific linting rules</td><td>MIT</td></tr><tr><td>TypeScript</td><td>Add static typing to JavaScript</td><td>Apache-2.0</td></tr><tr><td>Font Awesome</td><td>Font icons</td><td>CC BY 4.0</td></tr><tr><td>React Hook Form</td><td>Manage and validate form state</td><td>MIT</td></tr><tr><td>Hook Form Resolvers</td><td>Integrate schema validation libraries with React Hook Form</td><td>MIT</td></tr><tr><td>Axios</td><td>Promise-based HTTP client for browser and Node.js</td><td>MIT</td></tr><tr><td>js-cookie</td><td>Read and write browser cookies</td><td>MIT</td></tr><tr><td>dotenv</td><td>Load environment variables into the frontend</td><td>BSD-2</td></tr><tr><td>Mermaid</td><td>Render diagrams and flowcharts from text definitions</td><td>MIT</td></tr><tr><td>UIW Markdown Editor</td><td>Rich Markdown editing component</td><td>MIT</td></tr><tr><td>rehype-sanitize</td><td>Sanitize HTML output for Markdown</td><td>MIT</td></tr><tr><td>KaTeX</td><td>Render LaTeX math expressions in the browser</td><td>MIT</td></tr><tr><td>Papa Parse</td><td>Parse and generate CSV data</td><td>MIT</td></tr><tr><td>Class Variance Authority</td><td>Manage conditional CSS class names</td><td>MIT</td></tr><tr><td>Lucide React</td><td>Simple, customizable SVG icon library</td><td>ISC</td></tr><tr><td>React Icons</td><td>Bundle popular icon sets as React components</td><td>MIT</td></tr><tr><td>React Social Icons</td><td>Social media icon components</td><td>MIT</td></tr><tr><td>React Hot Toast</td><td>Lightweight toast notification library</td><td>MIT</td></tr><tr><td>Zod</td><td>Type-safe schema definitions and validation</td><td>MIT</td></tr><tr><td>he</td><td>Encode/decode HTML entities</td><td>MIT</td></tr></tbody></table>

***

### 🧪 DevDependencies (Frontend)

<table><thead><tr><th width="246">Package Name</th><th width="380">Usage</th><th width="122">License</th></tr></thead><tbody><tr><td>TypeScript</td><td>Language compiler and type checker</td><td>Apache-2.0</td></tr><tr><td>React Type Definitions</td><td>TypeScript types for React</td><td>MIT</td></tr><tr><td>React DOM Type Definitions</td><td>TypeScript types for React DOM</td><td>MIT</td></tr><tr><td>Node.js Type Definitions</td><td>TypeScript types for Node.js</td><td>MIT</td></tr><tr><td>Papa Parse Type Definitions</td><td>TypeScript types for Papa Parse</td><td>MIT</td></tr><tr><td>js-cookie Type Definitions</td><td>TypeScript types for js-cookie</td><td>MIT</td></tr><tr><td>he Type Definitions</td><td>TypeScript types for he</td><td>MIT</td></tr><tr><td>ESLint</td><td>Lint JavaScript/TypeScript code</td><td>MIT</td></tr><tr><td>Next.js ESLint Config</td><td>Next.js–specific linting rules</td><td>MIT</td></tr><tr><td>PostCSS</td><td>Transform CSS with plugins</td><td>MIT</td></tr><tr><td>Tailwind CSS</td><td>Build utilities-first CSS</td><td>MIT</td></tr></tbody></table>

## ☁️ External Services

<table><thead><tr><th width="208">Service</th><th>Usage</th></tr></thead><tbody><tr><td><strong>Gemini</strong></td><td>AI-powered features and integration (by Google)</td></tr><tr><td><strong>Google Cloud</strong></td><td>Cloud storage for file hosting and asset management</td></tr><tr><td><strong>OneCompiler</strong></td><td>Execute and evaluate code in 50+ languages online</td></tr><tr><td><strong>SMTP (Gmail)</strong></td><td>Email delivery via Gmail SMTP</td></tr><tr><td><strong>GitHub</strong></td><td>Source code hosting, version control, and collaboration</td></tr><tr><td><strong>GitHub Actions</strong></td><td>CI/CD automation for testing, building, and deploying</td></tr><tr><td><strong>SonarCloud</strong></td><td>Continuous code quality inspection and security analysis</td></tr><tr><td><strong>CodeQL</strong></td><td>Static code analysis to detect vulnerabilities</td></tr><tr><td><strong>Snyk</strong></td><td>Finds and fixes security vulnerabilities in dependencies</td></tr><tr><td><strong>CodeRabbit</strong></td><td>AI-powered code review and pull request analysis</td></tr><tr><td><strong>GitGuardian</strong></td><td>Detects and alerts on sensitive data leaks (e.g., API keys)</td></tr><tr><td><strong>Dependabot</strong></td><td>Automatically updates dependencies for security patches</td></tr><tr><td><strong>Somee</strong></td><td>Backend deployment for ASP.NET applications</td></tr><tr><td><strong>Netlify</strong></td><td>Frontend hosting and continuous deployment</td></tr><tr><td><strong>Cloudflare</strong></td><td>Domain management and DNS configuration</td></tr></tbody></table>

## 💼 Tools

<table><thead><tr><th>Tool / Platform</th><th width="264">Usage</th><th>License Type</th></tr></thead><tbody><tr><td>JetBrains Rider</td><td>.NET development IDE</td><td>Free (GitHub Education)</td></tr><tr><td>JetBrains WebStorm</td><td>Next.js/Frontend IDE</td><td>Free (GitHub Education)</td></tr><tr><td>SQL Server Management Studio</td><td>Database management</td><td>Free</td></tr><tr><td>GitHub Copilot</td><td>AI code assistant</td><td>Free (GitHub Education)</td></tr><tr><td>GitKraken</td><td>Git GUI and version control</td><td>Free (GitHub Education)</td></tr><tr><td>Figma</td><td>UI/UX design</td><td>Free (Education Plan)</td></tr><tr><td>ClickUp</td><td>Sprint and task management</td><td>Free (limited)</td></tr><tr><td>Docker &#x26; Docker Compose</td><td>Containerization and orchestration</td><td>Free (Open Source)</td></tr><tr><td>SonarCloud (JetBrains Plugin)</td><td>Code quality and static analysis</td><td>Free (Open Source)</td></tr></tbody></table>
