Skip to content

Merge NoteKeeper into a deployable full-stack web app - #1

Merged
AmirTahan80 merged 10 commits into
mainfrom
agent/merge-web-app
Jul 22, 2026
Merged

AmirTahan80 merged 10 commits into
mainfrom
agent/merge-web-app

Conversation

@AmirTahan80

Copy link
Copy Markdown
Owner

Summary

This pull request combines NoteKeeperFront and NoteKeeperBack into one production-ready web application while retaining the commit ancestry of both repositories.

What changed

  • serves the Angular 22 client and ASP.NET Core API from one .NET 10 process
  • replaces hard-coded client URLs with same-origin /api requests and a development proxy
  • migrates EF Core from SQL Server to PostgreSQL and adds a fresh PostgreSQL migration
  • stores small attachments in PostgreSQL so the demo needs only one web service and one database
  • replaces the custom shared-salt password hash with ASP.NET Core PasswordHasher
  • enables JWT authentication in the middleware pipeline
  • closes cross-user IDOR issues by checking ownership for topics, notes, and attachments
  • adds pagination/search, protected attachment loading, file limits, and health checks
  • removes committed build output, IDE files, obsolete MinIO/SSR/CKEditor dependencies, and vulnerable packages
  • adds Docker, Docker Compose, a Render Blueprint, GitHub Actions CI, and a complete Persian README
  • sanitizes known credentials from the imported Git history

Why

The frontend and backend previously required separate startup/configuration, used fixed localhost addresses, depended on SQL Server and MinIO, and contained authentication/authorization gaps that made a public deployment unsafe. The new layout produces one deployable container and keeps all user data in PostgreSQL.

Validation

  • dotnet build NoteBookKeeper.sln -c Release — passed with 0 warnings
  • dotnet format NoteBookKeeper.sln --verify-no-changes — passed
  • dotnet list ... package --vulnerable --include-transitive — no vulnerable NuGet packages
  • npm run build — passed
  • Angular Karma test in Chrome Headless — passed
  • npm audit --omit=dev — 0 vulnerabilities
  • scripts/e2e.ps1 — registration, login, migrations, Angular serving, note/attachment flow, unauthenticated file protection, and cross-user isolation passed against an isolated PostgreSQL cluster
  • docker build -t notekeeper:local . — passed

Deployment notes

render.yaml can create the web service and PostgreSQL database from the repository. Render's free PostgreSQL database is temporary, so a paid Render database or another persistent PostgreSQL provider should be used for a long-lived portfolio demo.

Any credentials reused from the old repositories should still be rotated because removing them from this new repository cannot remove them from the already-published history of the original repositories.

@AmirTahan80
AmirTahan80 marked this pull request as ready for review July 22, 2026 07:53
@AmirTahan80

Copy link
Copy Markdown
Owner Author

All validation is green: Angular 22 build and tests, .NET 10 build, dependency audits, Docker image build, and the PostgreSQL end-to-end authorization flow passed. This is ready to merge.

@AmirTahan80
AmirTahan80 merged commit 58a87b5 into main Jul 22, 2026
1 check passed
@AmirTahan80
AmirTahan80 deleted the agent/merge-web-app branch July 22, 2026 07:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant