NEGA CMS – Agency website with admin panel.
Content management system for a digital agency: services, references, pricing and blog fully manageable via a custom admin panel – ASP.NET Core 8, 3-tier architecture, SQLite.
NEGA CMS – Agency website with admin panel
Content management system for a digital agency: services, references, pricing and blog fully manageable via a custom admin panel – ASP.NET Core 8, 3-tier architecture, SQLite.
About the project
NEGA CMS is a fully featured content management system for a fictional digital agency. The entire public website—services, portfolio, pricing packages, blog, customer testimonials, and contact section—is managed via a custom admin panel.
The admin panel is accessible in the live demo without registration or login. The "View as" feature allows you to switch live between Admin, Moderator, and Writer roles. All modifications are permitted and reset every hour.
Technical implementation
The solution is structured into four projects: BE (Entities), DAL (EF Core, repositories, seed data), BLL (managers, business rules, FluentValidation), and the MVC interface featuring an admin area. Controllers communicate exclusively with BLL service interfaces. Authorization is handled via ASP.NET Core Identity, and data is stored in a SQLite file within the project. The responsive design is custom-built without any CSS framework. Deployment is handled via Docker on Render.
Key Features
- Agency website: home page with services, animated counters, references with a category filter, pricing packages, testimonials and a contact form.
- Blog: Articles featuring search, categories, pagination, as well as comments and replies with approval workflows.
- Admin Panel: 19 modules: Content, Portfolio, Pricing Packages, Videos, Customer Testimonials, Messages, Newsletter, and Settings.
- Roles & permissions: admin, moderator and writer with clearly separated rights – switchable live in the demo.
- Responsive Design: Custom-developed layout down to smartphones; admin tables automatically transform into cards on mobile.
- Privacy: No tracking cookies, no CDNs, local fonts and icons, and YouTube embedded only after a click.
My Role
Developed independently: database, business logic, admin panel, responsive frontend, automated tests and deployment.
Architecture
UI (ASP.NET Core MVC, Admin Area) → BLL (Interfaces and Managers, business rules, FluentValidation, DI registration) → DAL (DbContext for SQLite, generic and specific repositories, seeder) → BE (pure entity classes). Business rules reside consistently in the BLL, e.g., comment approval, protection against deleting in-use categories, and automatic reading time calculation.
Challenges
A CMS with 19 admin modules needed to be intuitive, role-based, mobile-friendly, and privacy-compliant while running stably as a public demo even though every visitor can modify content.
Solutions
Strict separation of concerns with business rules in the BLL, roles with clearly defined permissions, admin tables that automatically convert to cards on smartphones, and a demo mode with hourly resets. Fonts and icons are loaded locally, and YouTube videos are loaded only after a click (two-click solution).
Code Highlight
19 Admin-Module mit vollständigem CRUD und Bild-Upload · Kommentar-Moderation mit Team-Antworten · Benachrichtigungen bei neuen Kommentaren, Nachrichten und Anmeldungen · Newsletter mit CSV-Export · Besucherstatistik als SVG-Diagramm · 122 automatisierte Playwright-Prüfungen und ein Crawler über 110+ Seiten
Key Learnings
Cleanly bundling business rules in the logic layer · Designing role-based interfaces · Responsive design without a framework · End-to-end testing with Playwright · Privacy by design
// Detail views

