S.T.A.R - George97/FilmServiceSystem GitHub Wiki

Remove code frequency

  • SITUATION: All repositories used the similar quering logic to database.
  • TASK: Use class abstraction which implements repeatable code in general.
  • ACTION: I decided to create SqlCommandWrapper, where repeatable methods are implemented and Parser which convert input data from database to some model.
  • RESULTS: Convenient and clear repositories using.

Make user interface more convenient

  • SITUATION: At main form as result at some action should have been created many other forms.For better usebility, they should be created one over others.
  • TASK: Solve tis problem without creating new obsessive forms.
  • ACTION: I use such container as FlowLayoutPanel , which contain needed panels ,and swap them using methods SetChildIndex(z-index).
  • RESULTS: Compacted and functional powerful interface.

Passing hashed passwords

  • SITUATION: Application works with user account , so the problem of safe storing them at database arised.
  • TASK: Implement some of encryption algorithms for passwords hashing.
  • ACTION: I have used SHA256 hashing algorithm.
  • RESULTS: Passwords are stored at database as hashing strings.

Buying film transaction

  • SITUATION: There is situation when user buy some film , so the actions of adding new order and user`s balance decrising should have been simultaneous.
  • TASK: Choose the way of doing these operations synchronously.
  • ACTION: I create procedure MakeOrder , which using transaction guarantees adding new order and decrising of user balance at one time.
  • RESULTS: Correct buying operations.

Make application interface more friendly

  • SITUATION: As I decided to write project as Windows Form addplication, so there was the problem how to change boring design of standard controls.
  • TASK: Make application interface more friendly without using special designing libraries.
  • ACTION: I decided, that the most appropriate way to solve this problem without excessive complications was using picture boxes and label instead of standard button and text boxes.
  • RESULTS: Friendly application interface.