Skip to content

filemat/dictionary-app

Repository files navigation

🌍 Dictionary App

This project is a C# console-based translation management tool that allows users to store, search, export, import, and analyze translations between languages. The system is built with clean architecture in mind, using .NET Core, Entity Framework, and NUnit for testing.


🛠️ Technologies Used

  • C# .NET Core – Main language and application framework
  • Entity Framework Core – Database operation
  • SQL Server LocalDB – Persistent data storage
  • LINQ – Data queries
  • NUnit – Unit testing framework
  • XML – Data import/export
  • Text-based Reports – Export searched analytics

✨ Features

  • 🔍 Search Translations – Search by keywords and increment search statistics
  • Add New Translations – With duplicate checks
  • 📈 Track Most Searched Terms – Easily view popular phrases
  • 📤 Export Translations to XML – For data portability
  • 📥 Import Translations from XML – Merge new or existing entries
  • 🧾 Generate Monthly Reports – Saves analytics of recent translations to .txt
  • 🔄 Update Quantity and Search Count – On repeated usage or imports
  • 🧪 Comprehensive Unit Tests – Using NUnit

📁 Project Structure

TranslationApp/
├── Application/
│   ├── ITranslationService.cs        # Interface for business logic
│   └── TranslationService.cs         # Implements translation operations
│
├── Model/
│   └── Translation.cs                # Data model with properties
│
├── Persistence/
│   ├── TranslationDbContext.cs       # Core DB context with seed data
│
├── Persistence/MsSql/
│   └── TranslationDataProvider.cs    # Concrete implementation for data access
│
├── Tests/
│   └── tests.cs                      # NUnit test cases for core functionalities
│
├── Program.cs                        # Entry point for the console application

🧠 Interesting Aspects

  • The system tracks translation frequency and search popularity
  • Uses event-based programming using TranslationExists event
  • Real-world data serialization via XML
  • Date-based filtering for analytics and reporting
  • Fully tested with mocked in-memory databases to ensure correctness

Was created as part of a university project at Óbuda University (2024).

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages