ReporterDay is a layered ASP.NET Core MVC blog/news platform. It includes article publishing, category and slider management, author flows, user registration/login with ASP.NET Core Identity, comments, slug-based article URLs, protected article identifiers, and AI-assisted comment moderation with Hugging Face.
This project is a stronger portfolio piece because it demonstrates multi-layered .NET architecture, EF Core, Identity, validation, data access abstractions, ViewComponents, and external AI service integration.
ReporterDay/
├── ReporterDay.sln
├── ReporterDay.EntityLayer/
│ └── Entities/
├── ReporterDay.DataAccessLayer/
│ ├── Context/
│ ├── EntityFramework/
│ ├── Migrations/
│ └── Repositories/
├── BusinessLayer/
│ ├── Abstract/
│ ├── Concrete/
│ ├── Models/
│ └── ValidationRules/
├── ReporterDay.PresentationLayer/
│ ├── Controllers/
│ ├── Models/
│ ├── Security/
│ ├── ViewComponents/
│ ├── Views/
│ ├── Program.cs
│ └── appsettings.json
└── README.md
Before running the project, make sure the following tools are installed:
Install EF Core CLI tools if they are not already installed:
dotnet tool install --global dotnet-ef
If the tool is already installed, update it:
dotnet tool update --global dotnet-ef
The project uses SQL Server with EF Core migrations.
The database connection is read from:
ReporterDay.PresentationLayer/appsettings.json
Default local configuration:
"ConnectionStrings": {
"DefaultConnection": "Server=localhost;Database=ReporterBlogDayDb;Trusted_Connection=True;TrustServerCertificate=True;"
}
For team or production-like usage, keep machine-specific values out of source control and override the connection string with user secrets:
dotnet user-secrets init --project ReporterDay.PresentationLayer/ReporterDay.PresentationLayer.csproj
dotnet user-secrets set "ConnectionStrings:DefaultConnection" "Server=localhost;Database=ReporterBlogDayDb;Trusted_Connection=True;TrustServerCertificate=True;" --project ReporterDay.PresentationLayer/ReporterDay.PresentationLayer.csproj
If you use SQL Server in Docker, use a SQL authentication connection string instead:
dotnet user-secrets set "ConnectionStrings:DefaultConnection" "Server=localhost,1433;Database=ReporterBlogDayDb;User Id=sa;Password=Your_password123;TrustServerCertificate=True;" --project ReporterDay.PresentationLayer/ReporterDay.PresentationLayer.csproj
Apply migrations:
dotnet ef database update --project ReporterDay.DataAccessLayer/ReporterDay.DataAccessLayer.csproj --startup-project ReporterDay.PresentationLayer/ReporterDay.PresentationLayer.csproj
This creates the ReporterBlogDayDb database and required tables for articles, categories, comments, sliders, tags, and Identity users.
The project supports optional Hugging Face-based toxicity detection for comments.
Default model settings are located in:
ReporterDay.PresentationLayer/appsettings.json
The API token should not be committed to the repository. Use user secrets:
dotnet user-secrets set "HuggingFace:ApiToken" "your-huggingface-token" --project ReporterDay.PresentationLayer/ReporterDay.PresentationLayer.csproj
If no token is configured, the moderation service reports the model as unavailable. The project also supports blocked-word moderation through CommentModeration:BlockedWords.
Clone the repository:
git clone https://github.com/FatmaBuseBorlu/ReporterDay.git
Navigate into the project folder:
cd ReporterDay
Restore dependencies:
dotnet restore
Apply database migrations:
dotnet ef database update --project ReporterDay.DataAccessLayer/ReporterDay.DataAccessLayer.csproj --startup-project ReporterDay.PresentationLayer/ReporterDay.PresentationLayer.csproj
Run the application:
dotnet run --project ReporterDay.PresentationLayer/ReporterDay.PresentationLayer.csproj
Open the application in your browser using the localhost URL shown in the terminal.
/Default/Index Public homepage
/Article/ArticleDetail Article detail page
/Register/CreateUser User registration
/Login/UserLogin User login
/Author/CreateArticle Author article creation
/Author/MyArticleList Author article list
/Category/CategoryList Category management
/Slider/SliderList Slider management
In development mode, there are also diagnostic endpoints:
/test-config Shows whether Hugging Face token/config exists
/test-tox Tests toxicity model integration
/_endpoints Lists mapped endpoints
appsettings.json and user secretsReporterDay is a layered ASP.NET Core MVC blog/news platform. It includes article publishing, category and slider management, author flows, user registration/login with ASP.NET Core Identity, comments, slug-based article URLs, protected article identifiers, and AI-assisted comment moderation with Hugging Face.
This project is a stronger portfolio piece because it demonstrates multi-layered .NET architecture, EF Core, Identity, validation, data access abstractions, ViewComponents, and external AI service integration.
ReporterDay/
├── ReporterDay.sln
├── ReporterDay.EntityLayer/
│ └── Entities/
├── ReporterDay.DataAccessLayer/
│ ├── Context/
│ ├── EntityFramework/
│ ├── Migrations/
│ └── Repositories/
├── BusinessLayer/
│ ├── Abstract/
│ ├── Concrete/
│ ├── Models/
│ └── ValidationRules/
├── ReporterDay.PresentationLayer/
│ ├── Controllers/
│ ├── Models/
│ ├── Security/
│ ├── ViewComponents/
│ ├── Views/
│ ├── Program.cs
│ └── appsettings.json
└── README.md
Before running the project, make sure the following tools are installed:
Install EF Core CLI tools if they are not already installed:
dotnet tool install --global dotnet-ef
If the tool is already installed, update it:
dotnet tool update --global dotnet-ef
The project uses SQL Server with EF Core migrations.
The database connection is read from:
ReporterDay.PresentationLayer/appsettings.json
Default local configuration:
"ConnectionStrings": {
"DefaultConnection": "Server=localhost;Database=ReporterBlogDayDb;Trusted_Connection=True;TrustServerCertificate=True;"
}
For team or production-like usage, keep machine-specific values out of source control and override the connection string with user secrets:
dotnet user-secrets init --project ReporterDay.PresentationLayer/ReporterDay.PresentationLayer.csproj
dotnet user-secrets set "ConnectionStrings:DefaultConnection" "Server=localhost;Database=ReporterBlogDayDb;Trusted_Connection=True;TrustServerCertificate=True;" --project ReporterDay.PresentationLayer/ReporterDay.PresentationLayer.csproj
If you use SQL Server in Docker, use a SQL authentication connection string instead:
dotnet user-secrets set "ConnectionStrings:DefaultConnection" "Server=localhost,1433;Database=ReporterBlogDayDb;User Id=sa;Password=Your_password123;TrustServerCertificate=True;" --project ReporterDay.PresentationLayer/ReporterDay.PresentationLayer.csproj
Apply migrations:
dotnet ef database update --project ReporterDay.DataAccessLayer/ReporterDay.DataAccessLayer.csproj --startup-project ReporterDay.PresentationLayer/ReporterDay.PresentationLayer.csproj
This creates the ReporterBlogDayDb database and required tables for articles, categories, comments, sliders, tags, and Identity users.
The project supports optional Hugging Face-based toxicity detection for comments.
Default model settings are located in:
ReporterDay.PresentationLayer/appsettings.json
The API token should not be committed to the repository. Use user secrets:
dotnet user-secrets set "HuggingFace:ApiToken" "your-huggingface-token" --project ReporterDay.PresentationLayer/ReporterDay.PresentationLayer.csproj
If no token is configured, the moderation service reports the model as unavailable. The project also supports blocked-word moderation through CommentModeration:BlockedWords.
Clone the repository:
git clone https://github.com/FatmaBuseBorlu/ReporterDay.git
Navigate into the project folder:
cd ReporterDay
Restore dependencies:
dotnet restore
Apply database migrations:
dotnet ef database update --project ReporterDay.DataAccessLayer/ReporterDay.DataAccessLayer.csproj --startup-project ReporterDay.PresentationLayer/ReporterDay.PresentationLayer.csproj
Run the application:
dotnet run --project ReporterDay.PresentationLayer/ReporterDay.PresentationLayer.csproj
Open the application in your browser using the localhost URL shown in the terminal.
/Default/Index Public homepage
/Article/ArticleDetail Article detail page
/Register/CreateUser User registration
/Login/UserLogin User login
/Author/CreateArticle Author article creation
/Author/MyArticleList Author article list
/Category/CategoryList Category management
/Slider/SliderList Slider management
In development mode, there are also diagnostic endpoints:
/test-config Shows whether Hugging Face token/config exists
/test-tox Tests toxicity model integration
/_endpoints Lists mapped endpoints
appsettings.json and user secrets