MyTones
View on GithubThis Project...
My Tones was designed and built as a semester-long project at UIC for CS 398 Professional Development Class which focused on databases, their proper design, their uses, and their challenges. It is a multi-user database application with transactions and rollback capability using music as a theme.
In doing this project I learned most importantly about the differences of multi-user application design and the steps needed to be taken to ensure smooth interaction with a database.
I learned about the importance of Transactions and their uses in making the interactions smooth and handled correctly. As well as how to rollback a failed interaction so as to keep the system running. As well as the common practices of cleaning up after a rollback so the user notices little to nothing wrong when possible. As a result of this class I also expanded my knowledge and experience working with visual studio and basic database interactions along with a uniquely interesting experience condensing code.
Unique Challenges...
Due to the nature of this project being a school project most of the challenges were created intentionally. I challenged myself by creating a single reusable section of code out of the many repeated but varied sections that dealt with entering the data into the SQL database. Rather than hard code in each separate SQL command for loading the data of different tables from a file I rather created a system to dynamically create the SQL command based on what was found in the file given to the program. This drastically reduced the repeated code but did make for some stubborn bugs when designing this system.
The multi-user design was a requirement to work with this the application was designed to allow users to add data to the database. The problems caused by multiple users trying to add data at the same time were simulated and then fixed using standard transactions and rollback procedures.
Mockaroo.com was used to mitigate some of the challenges posed when trying to work with databases without real data. The site provided quality realistic test data which enable testing and use of realistic data manipulation and rigorous bug testing.
Technologies Used...
- C#
- SQL
- MVC
- Visual Studio
- Mockaroo