C#/WPF Challenge

AIS C#/WPF Challenge

Hey, what's up? Are you ready to start the challenge? We would like to remember that this step will help us evaluate your performance. Take a deep breath and let’s go! We’re rooting for you. 😁

Some Rules

1 - DO NOT share your answer with others.

2 - Remember that this challenge is meant to evaluate your skills, you don't necessarily have to finish all the challenge code implementation, we just want to get know you better. 😁

Steps

  • Fork the repository.
  • Create a branch (from master branch) with the following pattern: Use your name as branch name, eg: Considering that my name is Jose da Silva the branch name should be: "feature/jose_silva"
  • Work only on your branch, and after you finish, create a Pull Request targeting "master" branch on this repository.
  • DO NOT change the reviewers of your Pull Request.

Requirements

  • .NET Framework 4.7.2 (Usually already provided with Windows 10 installations)

Instructions

For the purposes of this challenge, we recommend using Visual Studio or Visual Studio Code. We have already set up a VS solution with a C#/WPF template project associated with it. We suggest using this initial structure as a starting point for you.

After set it all up, let's go to the challenge \o/

Challenge

Consider a basic Windows desktop application used for recording customer data, with the following requirements:

  • It must be developed using C# and WPF, of course;

  • It must received as input the following customer data:

    • Name;

    • E-mail;

    • Phone;

    • Address;

  • User must provide the aforementioned data by means of a registration form in MainWindow;

  • Existing customer data must be displayed in table format also in MainWindow;

  • When applicable, buttons must be provided for basic operations such as:

    • Customer creation;
    • Customer editing;
    • Customer deletion;

During the challenge, please consider the following:

  • Feel free to implement UX/UI the way you think is good (assume a real-world scenario);

  • Regarding software architecture/design, also feel free to do it the way you think we will be able to see you at your finest;

  • During software construction, please bear in mind keeping the code as clean and maintainable as possible;

  • Please provide unit tests for all you think is necessary to be tested (you can use xUnit, for example);

  • As we have previously mentioned, you do not need to solve this challenged in its entirety, but we will surely take your best effort into consideration;

Happy Coding!