A robust, desktop-based management system for handling telecommunication clients, services, and subscriptions.
The Phone Service System is a Windows Forms (WinForms) application developed in C# that allows businesses to efficiently manage their telecommunication services. It provides an intuitive user interface for managing clients, tracking extra service options, and maintaining active subscriptions. The application leverages a local SQLite database to ensure fast, reliable, and persistent data storage without the need for a complex server setup.
This project demonstrates strong object-oriented programming principles, the Repository design pattern, and effective use of the ADO.NET/SQLite data access layer.
For detailed guides on how to use the application and a deep dive into the database architecture, please visit the Project Wiki.
- 👥 Client Management: Create, read, update, and delete (CRUD) client profiles, including first name, last name, and contact numbers.
- ⚙️ Service Options: Manage available add-on services (e.g., extra data, international calling) along with their monthly costs.
- 📅 Subscription Tracking: Assign service options to clients, complete with start and end dates.
- 💾 Local Data Persistence: Uses a lightweight, embedded SQLite database (
database.db) initialized automatically on startup. - 📤 Data Export: Export client and subscription data to a neatly formatted
.txtfile for reporting and external use. - 🎨 Intuitive UI: A clean, multi-window Windows Forms interface with list views, contextual dialogs, and standard menu navigation.
- Language: C# 7.0+
- Framework: .NET Framework 4.7.2
- UI Architecture: Windows Forms (WinForms)
- Database: SQLite (via
System.Data.SQLite) - ORM / Data Access: Raw ADO.NET with parameterized queries for maximum performance and security against SQL injection.
- Repository Pattern: The
Repository.csclass abstracts all direct database interactions. This centralizes SQL queries, simplifies the UI code, and makes the application easier to maintain and test. - Parameterized Queries: All database inputs use parameterized SQL statements to prevent SQL injection vulnerabilities.
- Event-Driven UI: Forms utilize standard event handlers (
Click,Load) to manage state and interact with the data layer.
- Visual Studio 2022 (or Visual Studio 2019)
- .NET Framework 4.7.2 Developer Pack
- Clone the repository to your local machine.
- Open the solution file
PhoneServiceSystem.slnin Visual Studio. - Restore NuGet packages (Right-click the Solution in Solution Explorer -> Restore NuGet Packages).
- Press
F5or click Start to run the application. - Note: The SQLite database (
database.db) will be created automatically in thebin/Debugdirectory upon first launch.
PhoneServiceSystem/
│
├── ClassFolder/
│ ├── Client.cs # Client entity model
│ ├── ExtraOption.cs # Service option entity model
│ ├── Subscription.cs # Subscription entity model
│ └── Repository.cs # SQLite database access layer (CRUD operations)
│
├── FormFolder/
│ ├── MainForm.cs # Main dashboard and navigation
│ ├── ClientForm.cs # Client management list view
│ ├── ClientEditDialog.cs # Dialog for adding/editing a client
│ ├── SubscriptionForm.cs # Subscription management list view
│ └── ExtraOptionForm.cs # Service options management list view
│
├── App.config # Application configuration
└── packages.config # NuGet package dependencies
- Clean Code & Separation of Concerns: By keeping database logic out of the UI forms (via
Repository.cs), the codebase is scalable and readable. - Zero-Configuration Database: The choice of SQLite means reviewers and users don't need to install SQL Server or configure connection strings to run the app. It works right out of the box.
- Robust Error Handling: Safely exports data with exception handling and utilizes
usingstatements forSQLiteConnectionandSQLiteCommandto ensure proper disposal of unmanaged resources.
Thank you for reviewing my project! Feel free to reach out if you have any questions about the implementation.