This is a program that uses Microsoft Azure's storage tables to create a Facebook-based interaction system between different clients. This was a semester-long project I developed in a 4-member team for my Introduction to Software Engineering class. I led and administered the team, wrote functions and code snippets to add features to the server, and wrote unit tests to strengthen the functionalities of the client.
Teammates Involved: Andrew Song, Angelina Singh, and Lawrence Yu
Languages Used: C++
Software and Frameworks Used: Microsoft Azure, JSON, UnitTest++, Git
Skills Acquired: Server-Client Understanding and Interaction, Team Collaboration, Pair Programming, Authentication, Agile Development, Testing, Quality Assurance
Course Learned: Introduction to Software Engineering
Iteration 1: The Basics
The first iteration exposed my team members and me with the framework of Azure's tables. I learned how to create, update, and delete a JSON entity in a key-value storage table.
I also learned the uses and importance of the GET, PUT, POST, and DELETE functions.
Lastly, I was exposed to creating low-level unit tests through the UnitTest++ framework to search for bugs or abnormalities with our server code. It was my first time experiencing software quality assurance.
Iteration 2: The Authentication
The second iteration introduced my team members and me to the processes and implementation of authorization and authentication. I was in-charge of acquiring and checking the validity of a 185-bit string security token.
During this iteration, I was also overwhelmed by the confusions and complications of using Git on the terminal.
Iteration 3: The Social Networking Features
This last iteration allowed my team members and me the opportunity to create features for a social networking user session. During this iteration, I've written both server and client code for signing on, signing off, reading the contents of a user's friend list, and pushing the user's updated status to his or her friends.
It was also during this iteration where I had to delegate tasks to my members because the semester was closing and we were busy with finishing other assignments.
Reflection
The project turned out well, although our tests did not cover all cases for functionality and correctness. This meant that some of our server code was either wrong or incomplete. If there was one thing I wanted to improve for this project, it was in being clear with how to use Git.
Social Networking Interaction System
This is a program that uses Microsoft Azure's storage tables to create a Facebook-based interaction system between different clients. This was a semester-long project I developed in a 4-member team for my Introduction to Software Engineering class. I led and administered the team, wrote functions and code snippets to add features to the server, and wrote unit tests to strengthen the functionalities of the client.
Iteration 1: The Basics
The first iteration exposed my team members and me with the framework of Azure's tables. I learned how to create, update, and delete a JSON entity in a key-value storage table.
I also learned the uses and importance of the GET, PUT, POST, and DELETE functions.
Lastly, I was exposed to creating low-level unit tests through the UnitTest++ framework to search for bugs or abnormalities with our server code. It was my first time experiencing software quality assurance.
Iteration 2: The Authentication
The second iteration introduced my team members and me to the processes and implementation of authorization and authentication. I was in-charge of acquiring and checking the validity of a 185-bit string security token.
During this iteration, I was also overwhelmed by the confusions and complications of using Git on the terminal.
Iteration 3: The Social Networking Features
This last iteration allowed my team members and me the opportunity to create features for a social networking user session. During this iteration, I've written both server and client code for signing on, signing off, reading the contents of a user's friend list, and pushing the user's updated status to his or her friends.
It was also during this iteration where I had to delegate tasks to my members because the semester was closing and we were busy with finishing other assignments.
Reflection
The project turned out well, although our tests did not cover all cases for functionality and correctness. This meant that some of our server code was either wrong or incomplete. If there was one thing I wanted to improve for this project, it was in being clear with how to use Git.