Modifications on User Module

For this week, I’ve been assigned with new tasks that required to move the user creation features from user module to hash generator project and implement new features such as user edit, delete and editable custom salt in hash generator project.

Firstly, I’ve create the UI for the hash generator. I’ve also created a new model class and database table that used to store the editable custom salt. For the hash generator, it allows user to add and update a custom salt that will be used together with the hash generation. By updating the custom salt, it will reset all user password to default password.

After the hash generator project had finish implemented those features, I’ve started to remove the existing features from the user module. I’ve also create unit tests for the hash generator project.

Development of User Module

For the second week, I’ve continue with the development of user module that being assigned in last week. For last week’s progression, the user context had been developed and configured. Therefore, I’ve started to develop the UI for both login and registration view.

While the process of developing the view model for both views, I had face the problem on the PasswordBox UI element which blocks the binding from view model. After I referred the sample code and search for solutions, I’ve learnt and able to handle the parameter passing of PasswordBox elements to view model.

Not only that, I’ve also setup some unit tests for all view models that I’ve created. However, I was not able to use the [Fact] attribute for the unit tests since the unit tests will require UI element to run the unit test for the login and registration view model. Therefore, instead of [Fact] attribute, I’ve used the [StaFact] attribute which allowed the tests to run with the UI elements.

Lastly, I’ve being assigned with new task which is to develop a new view that allow user to modify their display name and password as well.

Introduction to Materials Needed for Development

In this week, I’ve go through the resources that required for the project before getting started with the development. For the first, I’ve learnt the usage of git repository by going through some tutorials. It’s used for tracking changes made on source code during development with multiple programmers. Not only that, I’ve also learnt on how to interact with the git repository by using Bitbucket and Sourcetree such as push and pull.

Furthermore, I’ve also get myself familiar with Test Driven Development (TDD) concept which is the development approach that emphasize on testing and refactoring the functions repeatedly. Instead of just getting familiar with the concepts, I’ve also try on its exercise files in order to learn on how to implement and apply the concepts into the project.

Moreover, I’ve learnt the Prism Library for WPF which is the framework that helps to create application that have loosely coupled components. In the course, I’ve learnt how to implement the features such as delegate command, custom dialogs, event aggregator and others as well.

Lastly, after I’ve went through these materials that required for the project, I had been given the task for developing the user module which is the login and create account page. I’ve started the development from creating the repository, set up the config for the model class and create the database that run by Docker which can connect to the database without it install locally.