Skip to content

Repository files navigation

novini4ka (новини4ка)

An automated news aggregation platform built with ASP.NET Core

Pulls, processes, and serves news from multiple sources — automatically.


C# HTML CSS Build License Stars


The name is Bulgarian — новини (novini) means "news", and the "-4ka" suffix gives it a playful, familiar feel. Small name, serious architecture.



📰 About

novini4ka is a full-stack ASP.NET Core news aggregation platform that automatically collects articles from multiple news sources on a scheduled basis, stores them, and presents them in a clean browsable interface — no manual curation needed.

At its core is a pipeline: scheduled cron jobs trigger news source adapters, which fetch and normalise articles into a unified data model, persisted via Entity Framework Core. The web layer then serves that content to users in real time.

The project follows the same layered, production-grade architecture as AYN — complete with StyleCop code quality enforcement and a GitHub Actions CI pipeline.


✨ Features

🤖 Automated News Pipeline

  • Cron job scheduler — background jobs run on a configurable schedule to fetch fresh news automatically
  • Multiple news source adapters — the NewsSources service layer abstracts each external source behind a common interface, making it trivial to add more
  • Normalised data model — articles from different sources are mapped into a consistent structure before storage

📋 Content & Browsing

  • Browse aggregated articles by source, category, or date
  • Clean, readable article listings with metadata (title, source, date, summary)
  • Paginated results for navigating large article sets

👤 User System

  • ASP.NET Core Identity — registration, login, role management
  • User preferences and saved articles

🛠️ Code Quality

  • StyleCop with custom ruleset — consistent, enforceable code style across the entire solution
  • Unit tests — service layer covered by an isolated test suite
  • GitHub Actions CI — build and test pipeline runs on every push to main

🏗️ Architecture

novini4ka is built on a clean layered architecture mirroring industry patterns:

novini4ka/
├── .github/workflows/              # CI/CD — GitHub Actions pipeline
├── Novinichka.Common/              # Shared constants and utility helpers
├── Novinichka.Services.CronJobs/   # Scheduled background jobs (news fetching)
├── Novinichka.Services.NewsSources/ # News source adapters & normalisation logic
├── Data/
│   ├── Novinichka.Data/            # DbContext, EF Core configuration & migrations
│   └── Novinichka.Data.Models/     # Domain entities (Article, Source, Category…)
├── Services/                       # Core business logic services
├── Tests/                          # Unit tests for the service layer
└── Web/                            # ASP.NET Core MVC — controllers, views, areas

The NewsSources and CronJobs layers are deliberately separated — sources define how to fetch and normalise data; jobs define when to trigger that process. This makes the system easy to extend with new sources without touching scheduling logic.


🛠️ Tech Stack

Layer Technology
Framework ASP.NET Core MVC
Language C# (.NET)
ORM Entity Framework Core
Auth ASP.NET Core Identity
Background Jobs Cron-based scheduler
Database MS SQL Server
Code Quality StyleCop + custom ruleset
CI/CD GitHub Actions
IDE Visual Studio

🚀 Getting Started

Prerequisites

Setup

  1. Clone the repository

    git clone https://github.com/georgidelchev/novini4ka.git
    cd novini4ka
  2. Configure the connection string in Web/appsettings.json:

    {
      "ConnectionStrings": {
        "DefaultConnection": "Server=.;Database=Novinichka;Trusted_Connection=True;"
      }
    }
  3. Apply migrations and run

    cd Web
    dotnet ef database update
    dotnet run
  4. The cron jobs will begin fetching news automatically on their configured schedule. Open https://localhost:5001 to browse articles.


👤 Author

Georgi Delchev

GitHub LinkedIn Facebook


📄 License

This project is licensed under the MIT License.


Made with ☕ and a passion for clean architecture · новини4ка

About

ASP.NET Core App for news.

Resources

Stars

7 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages