Abdullah Alzahrani

Junior Developer

person Profile desktop_windows Desktop Projects terminal Console Projects
© 2026 Abdullah Alzahrani
Desktop Projects

Desktop Projects

A curated collection of desktop applications focusing on C# and .NET Framework. Featuring event-driven architecture, structured UI design, and persistent data management.

Abstract technical visual for driving vehicle licenses department
Enterprise Application badge

Driving Licenses Dept.

4th

A comprehensive desktop application built with C# and .NET for managing driving licenses, vehicles, and client records. Features complex database integration and structured user interfaces.

C# WinForms ADO.NET
View Details arrow_forward Source Code code
Abstract glowing lines for notification app
Background Service notifications_active

Ajr Notification App

3rd

A C# desktop application that displays system tray notifications containing Islamic Doua (prayers) at user-defined intervals. Employs background worker threads and timer events.

C# WinForms
View Details arrow_forward Source Code code
Abstract organizational visual for to do list
Productivity Utility task_alt

To-Do List App

2nd

A desktop to-do list application to manage tasks, built with C# and Windows Forms, featuring task persistence and state management.

C# WinForms JSON
View Details arrow_forward Source Code code
Grid and abstract visual representing tic-tac-toe
Game Development grid_4x4

Tic-Tac-Toe Game

1st

A simple desktop Tic-Tac-Toe game built with C# and Windows Forms, featuring two-player gameplay and round tracking.

C# WinForms Bitwise logic
View Details arrow_forward Source Code code
Desktop Projects / Project Name
arrow_back Back to Projects

Driving Licenses
Management System

A full-scale enterprise application designed to automate the lifecycle of driving license issuance, vehicle registration, and fine management.

01.

Overview

The Driving Licenses Management System (DVLD) is a professional-grade MIS developed to solve the real-world complexity of managing citizens, licenses, vehicles, and violations. Built with a robust SQL Server backend and a multi-tier C# architecture.

02.

Learnings

This project served as a deep dive into enterprise software development patterns. I focused on building a scalable architecture that separates data access, business logic, and UI concerns.

  • Data Layer Advanced SQL normalization, complex stored procedures, and ADO.NET data access optimization.
  • Architecture Implementation of a 3-Layer Architecture (DAL, BAL, UI) to ensure maintainability and testability.
03.

System Features

License Lifecycle Management

Comprehensive handling of applications, tests (Vision, Written, Street), issuance, renewals, and replacements.

User Access Control

Role-based security system managing user permissions, login tracking, and data integrity.

04.

Screenshots

DVLD Main Dashboard
Main Application Interface
arrow_back Previous Project

Table of Content

Overview Learnings Features Screenshots

Ajr – Athkar Reminder

A lightweight background utility that ensures spiritual mindfulness by providing timed system tray notifications.

01.

Overview

Ajr is a simple Windows desktop utility built with C# and Windows Forms to help users stay mindful throughout their busy day. The application sits quietly in the system tray and displays periodic notifications (balloon tips) containing Islamic Doua (prayers).

The app is designed to be as unobtrusive as possible, using native Windows notification features and background timers to deliver reminders without interrupting the user’s workflow.

02.

Learning Highlights

This was my first project working with background services and system tray integration. I learned how to manage application life cycles where the main form is hidden but the program remains active in the background. I also practiced using timers and event handlers to trigger actions automatically at specific intervals, which strengthened my understanding of event-driven programming.

03.

Code Structure

  • Form1 (Main Form): Handles the main background logic, initializes the NotifyIcon, and manages the timer that triggers notifications.

  • About (Form): A simple pop-up that displays information about the application and its purpose.

  • NotifyIcon (Component): The bridge between the app and the Windows System Tray, handling the icon display, context menu, and balloon notifications.

04.

App Logic

The app’s logic is centered around a background timer. Once started, the timer runs at a fixed interval (e.g., every 5 minutes). When the timer "ticks," the program randomly selects a prayer from a predefined list and displays it using the NotifyIcon’s ShowBalloonTip method. The context menu allows the user to manually control the app, including opening the About section or exiting the program completely.

05.

Features

  • Background system tray operation.
  • Native Windows balloon notifications.
  • Custom context menu for easy control.
  • Lightweight and resource-efficient.
07.

Try The App

Download the project as a ZIP folder and extract it. Once unpacked, you can run the program directly. Download it here.

⚠️ Note: Windows may warn you when running the app for the first time because it is not digitally signed. Select “More info → Run anyway” to continue.
08.

Source Code

Visit the project repository on GitHub to view source code from here.

arrow_back Previous Project Next Project arrow_forward

Table of Content

Overview Learnings Structure App Logic Features Screenshots Try App Source Code

To-Do List
Application

A focused desktop tool for organized task management, utilizing local JSON persistence.

01.

Overview

To-Do List App is a small Windows desktop app for organizing everyday tasks. You can create categories, add tasks under each one, and mark tasks as done, reset them, or remove them when you're finished. The app stays simple on purpose, no database, no sync, no extra setup. It saves everything in a small local JSON file, so your tasks return exactly the same next time you open it.

02.

Learning Highlights

I learned how to structure tasks using a Dictionary where each category holds its own list of tasks. I also practiced reacting to user actions directly in the UI, like marking tasks as done or resetting them. This was my first project using JSON for saving data, so I learned how to serialize and deserialize objects cleanly without needing a database.

03.

Code Structure

  • MainForm (Form): The main window that displays categories and tasks and handles actions like adding, completing, resetting, and removing tasks.

  • AddCategoryForm: A small pop-up used to create a new category.

  • Data Structure: Tasks are managed in a Dictionary<string, List<TaskInfo>>.

04.

Features

  • Create custom task categories.
  • Add new tasks under each category.
  • Mark tasks as done or reset them.
  • Delete individual tasks when finished.
  • Delete an entire category if it’s no longer needed.
  • Select all or unselect all tasks with one action.
  • Changes are saved automatically without needing a save button.
05.

Data Storage

The app doesn’t use a database. It keeps all categories and tasks inside one small JSON file. Whenever you add, complete, reset, or delete a task, the app updates the file automatically so you don’t have to save anything manually.

When you open the app again, it reads that file and restores your tasks exactly the same as before. The file is stored locally in your user AppData folder:

C:\Users\(Username)\AppData\Local\ToDoList\tasks_data.json
06.

Screenshots

To-Do Main Interface
Main Interface
Adding Category
Adding a Category
Deleting Category
Deleting a Category
To-Do Logic
Application Logic
07.

Try The Project

Download the project as a ZIP folder and extract it. Once unpacked, you can run the program directly. Download it here.

⚠️ Note: When running the program for the first time, Windows may display a warning message because the file isn’t digitally signed. You can safely proceed by selecting “More info” → “Run anyway”.
08.

Source Code

Visit the project repository on GitHub to view source code from here.

arrow_back Previous Project Next Project arrow_forward

Table of Content

Overview Learnings Structure Features Data Handling Screenshots Try Project Source Code

Tic-Tac-Toe
Engine

A strategic implementation of the classic game featuring a bitwise win-detection algorithm.

01.

Overview

Tic-Tac-Toe is a simple two-player desktop game built using C# and Windows Forms. The interface shows a 3×3 grid, and each player takes turns placing their symbol (X or O). The game updates the board instantly, checks for wins or draws, and lets you restart the match at any time.

The win detection is done using a bitwise approach. Each square on the grid has a unique bit value, and each move adds that value to the player's bit pattern. The game then compares the player's pattern against pre-defined winning masks to check for a win quickly and cleanly.

Game Logic Flow
Game Logic Flow Diagram
02.

Learnings

Working on a desktop application helped me understand how logic flows through user interactions rather than linear code execution. It taught me how every click, input, and visual update becomes an event that drives the entire program behavior. I learned to combine responsive UI design, structured logic, and real-time feedback.

03.

System Flow

  • MainForm: The game starts here, where the player chooses either Friend or Computer mode.

  • Board Update: The clicked box image changes to X or O, and its bit flag is added to the corresponding player’s bit pattern.

  • Result Check: The program compares the player’s bit pattern against winning combinations to detect a win or draw.

04.

Code Structure

  • MainForm: The main menu of the game. It displays two mode options — Friend or Computer — each button tagged with its mode and handled by a single click event that opens the GameForm.
  • GameForm: Contains the entire gameplay logic. It draws the grid inside a Panel, assigns bitwise tags to each picture box, handles all click events, updates player bit patterns, and checks for win or draw conditions.
  • Program: The entry point of the application. It initializes the Windows Forms environment and runs the MainForm.
05.

Techniques

  • Bitwise System: Each box on the grid uses an enum flag (1, 2, 4, 8, …, 256) stored in its Tag. The game combines these flags with bitwise OR operations and checks predefined masks with & to detect wins efficiently.
  • Unified Click Handler: A single event manages all nine picture boxes, simplifying logic and reducing repetitive code by using each box’s Tag as a unique identifier.
  • GDI+ Drawing: The board grid is drawn directly inside the Panel using smooth, high-quality lines for a clean grid appearance.
06.

Game Modes

  • Friend Mode: Two players take turns on the same device. The interface updates the Current Player label after every move, clearly showing whose turn it is.
  • Computer Mode: The second player is controlled by the program, which automatically selects a random available box after the player’s turn and runs the same logic for move validation and win checking.
07.

UI & Visuals

  • Retro theme (black + neon yellow) with OCR A Extended headings.
  • X/O assets swapped into picture boxes; winning line tiles turn green.
  • Board grid drawn within the panel (not the form) for precise alignment.
08.

Screenshots

Tic-Tac-Toe Menu
Start Menu
Tic-Tac-Toe Game
Game Board
Winning Highlight
Winning Highlight
Draw Game
Draw Game
09.

Try The Project

Download the project as a ZIP folder and extract it. Once unpacked, you can run the program directly. Download it here.

⚠️ Note: When running the program for the first time, Windows may display a warning message because the file isn’t digitally signed. You can safely proceed by selecting “More info” → “Run anyway”.
10.

Source Code

Visit the project repository on GitHub to view source code from here.

Next Project arrow_forward

Table of Content

Overview Learnings System Flow Structure Techniques Game Modes UI & Visuals Screenshots Try Project Source Code