All projects

Agri-Energy Connect

Individual ASP.NET Core project modelling farmer and employee workflows and product management.

Farmer product creation workflow

Agri-Energy Connect project mark
  1. Farmer identity
  2. Controller guard
  3. Data write
  4. Activity trace
Explore the implementation evidence
Derived from source inspected on 27-28 May 2026. This describes implemented boundaries and isolated local validation, not live production operation.
My role
Individual Academic Developer
Timeframe
2025
Project status
Public repository
Academic result: 77% (PD)

The problem.

My individual academic capstone modelled how farmers and employees could manage products and accountable system activity in one application.

An individual ASP.NET Core MVC academic project modelling farmer and employee workflows, product management, a community forum, dashboard visualisations and audit activity. The public repository documents ASP.NET Core Identity roles, Entity Framework Core with SQLite and language switching for English, Afrikaans and isiZulu.

My contribution.

Designed and built an inspectable ASP.NET Core MVC project demonstrating role-based workflows, data persistence and localisation.

  • Farmer-facing product creation and management flow
  • Employee and Admin paths for relevant farmer and product administration
  • Forum, dashboard visualisations and language switching for English, Afrikaans and isiZulu

The implementation.

A role-aware ASP.NET Core MVC application on .NET 9.0 with EF Core, SQLite, Identity and an auditable service boundary.

  • Used controller and Identity boundaries to separate Farmer, Employee and Admin workflows
  • Persisted domain records through EF Core and SQLite, with audit activity connected to product changes
  • Configured English (South Africa), Afrikaans and isiZulu resources for the user-facing interface

ASP.NET Core MVC · .NET 9.0 · EF Core · SQLite · ASP.NET Core Identity · Chart.js · Bootstrap 5 · jQuery · AJAX

Role-aware MVC application.

Inspected source shows a structured ASP.NET Core application with role-gated workflows, persisted domain records and auditable product activity.

Access
ASP.NET Core Identity establishes Farmer, Employee and Admin role paths.
Workflows
MVC controllers handle products, farmer records, forum discussion and audit-log review.
Persistence
EF Core with SQLite stores farmers, products, forum replies, audit logs and notifications.
Cross-cutting
Product changes call AuditService, while resources configure English (South Africa), Afrikaans and isiZulu support.

Farmer product creation.
An attributable path.

Agri-Energy Connect project mark

Identity roles FarmerEmployeeAdmin

  1. Farmer identity

    An authenticated farmer enters the role-scoped product route.

  2. Controller guard

    ProductController checks that the submitted farmer belongs to the signed-in user.

  3. Data write

    EF Core saves the product record against the farmer relationship.

  4. Activity trace

    AuditService records creation and ProductNotifier triggers its registered observer.

ASP.NET Core MVCEF Core / SQLite
  • An isolated validation run passed 18/18 xUnit and WebApplicationFactory tests without compiler warnings on 28 May 2026 after repairing the MVC cookie/JWT authentication split, Identity Razor Page tag-helper imports and source-quality warnings.

Derived from source inspected on 27-28 May 2026. This describes implemented boundaries and isolated local validation, not live production operation.

Project identity.

The project mark identifies the work. The implementation evidence is described above and linked where available.

Agri-Energy Connect mark retained as secondary project identification.

What was delivered.

  • Awarded 77% (PD) for the individual academic project
  • Developed an ASP.NET Core MVC solution targeting .NET 9.0 with EF Core and SQLite
  • Implemented Farmer and Employee roles using ASP.NET Core Identity
  • Built product management, forum, dashboard and audit-activity functionality documented in the repository
  • Implemented language switching for English, Afrikaans and isiZulu

What I took forward.

  • The repository pattern adds upfront complexity but pays off when the data layer needs to change
  • Localisation should be planned from the start — bolting it on later doubles the work

Want to talk about this work?

A question about the approach, a role or a project of your own.

Discuss this project
Next projectNGI Foundation Platform