How I Built My First Contact Manager in Dart and C#

How I Built My First Contact Manager in Dart and C#

Yehor Yurkevycn

One of the most popular projects in our materials is the contact manager. Here’s how it’s built step by step, based on Nexus Bundle and Arc Suite levels.

First, in Nexus Bundle, we cover files and JSON: reading/writing text, encoding/decoding data, try/catch for errors. Then add input validation so the program doesn’t crash on invalid data.

In Arc Suite, combine everything: add classes (Contact with name, phone, email fields), constructors, methods (add, remove, list). The program becomes a console tool: menu with options, saving to JSON file, loading on startup.

Computer monitor displaying 'Forge Suite' with a person using a mouse in the background

Example structure (simplified):

       Contact class — holds data.

       loadContacts() function — reads JSON, handles errors.

       saveContacts() function — writes data.

       Main menu in main — loop with conditions and input.

I tested this project with real data: added 50+ contacts, checked for input errors (empty name, invalid phone). Used try/catch for FileNotFoundException and FormatException. In Dart — jsonDecode/jsonEncode; in C# — System.Text.Json.

Result — a reliable program that persists data between runs. It’s a good example of how basic skills (variables, loops, functions) turn into a complete tool. If you’ve completed previous levels — this project is a natural next step.

Control room with multiple computer monitors displaying code and data.

Back to blog