Skip to main content

Project Log

View our timeline to see what's been planned and what's ahead.

Team Progress breakdown#

DateTask DescriptionTeam memberhours
03/5/2021Initial team meetingYL + JX3
05/5/2021Learning React and NextJSYL + JX15
10/5/2021Week 1 Sprint team meetingYL + JX2
Week 1Set up Quiz, Forum DashboardYL + JX20
week 1Undocumented coding (UI and Bug fixes)YL + JX10
17/5/2021Week 2 Sprint team meetingYL + JX2
week 2Undocumented coding (UI and Bug fixes)YL + JX10
Week 2Set up Login authenticationJX5
24/5/2021Week 3 Sprint team meetingYL + JX2
week 3Undocumented coding (UI and Bug fixes)YL + JX10
Week 3Set up & migrate documentation siteYL5
Week 3Set up firebase connectionJX5
Week 3UI improvements and responsive design for forumJX5
Week 3Improve Quiz creation UIYL5
week 3UI fixes for landing and dashboardYL3
week 3Video and milestone 1 docs preparationYL + JX3
week 3Discuss backend data formats and arrangementsYL + JX3
31/5/2021Week 4 Sprint team meetingYL + JX2
week 4Undocumented coding (UI and Bug fixes)YL + JX10
Week 4Adding tags to forum postsYL2
Week 4Include Cypress as E2E testing toolYL5
Week 4Fixed firebase logic and backendYL5
Week 4Improved creation page for quiz and questionJX5
07/6/2021Week 5 Sprint team meetingYL + JX2
week 5Undocumented coding (UI and Bug fixes)YL + JX10
Week 5Fix fetch & update of forum dataYL5
Week 5Update landing page for forumJX5
Week 5Update UI of Quiz functionalityJX5
Week 5Create badges pageJX5
week 5Create scoreboard pageYL3
week 5Update profile page to display module infoYL + JX3
14/6/2021Week 6 Sprint team meetingYL + JX2
week 6Undocumented coding (UI and Bug fixes)YL + JX10
week 6Create user backendYL5
week 6Crate forum post from questionJX5
week 6Mark posts as wiki and link posts to questionYL5
week 6UI improvements for quiz, forum and questionsJX5
week 6Documentation updatesYL + JX5
21/6/2021Week 7 Sprint team meetingYL + JX2
week 7Undocumented coding (UI and Bug fixes)YL + JX10
week 7Add tests for forum and quizYL5
week 7Add notification functionalityYL2
week 7Crate module and quest editing functionalityJX5
week 7Update user guideJX2
week 7Add make wiki from reply functionalityYL2
week 7Backend update to connect user to postYL2
week 7UI improvements for quiz, forum and questionsJX5
week 7Milestone 2 submission prep (Video, Poster etc)YL + JX5
28/6/2021Week 8 Sprint team meetingYL + JX2
week 8Undocumented coding (UI and Bug fixes)YL + JX10
week 8Team review and feedbackYL + JX2
week 8Scoreboard and badges UI and fixesYL5
week 8Backend logic connection for Module and questYL5
week 8Reformating UI for Quiz, Question and othersJX5
week 8Quest creation functionalityJX5
week 8Weekly announcement filtering and logicJX5
week 8Various bug fixes and other refactoringYL + JX5
5/7/2021Week 9 Sprint team meetingYL + JX2
week 9Forum post ordered by weekJX2
week 9Forum UI updateJX2
week 9Fix badge display issuesYL4
week 9Search and sorting of QuizYL3
week 9Developer guide updateJX5
12/7/2021Week 10 Sprint team meetingYL + JX2
week 10General coding and bug fixesYL + JX10
week 10Adding new question typeJX5
week 10UI improvements and refactoringJX5
week 10Fixing backend issuesYL5
week 10Adding new test casesYL6
week 10Updating documentationYL + JX5
19/7/2021Week 11 Sprint team meetingYL + JX2
week 11General bug fixesYL + JX6
week 11Functional refactoringJX5
week 11Update developer guideJX5
week 11Fix backend module switching issuesYL5
week 11Fix quest update issuesYL5
week 11Update user guideYL2
week 11Fix unexpected UI issuesJX2
week 11Updating documentationYL + JX5
week 11Milestone 3 preparationsYL + JX5
25/7/2021Final product meetingYL + JX2

Total hours: 396 hours

Average per student:

  • Jun Xiong: 198 hours
  • Yong Liang: 198 hours

Overall Statistics#

At the time of writing (25/7/2021), we

  • closed 123 issues and
  • made 497 commits in our code repository

At the time of writing (13/7/2021), we

  • closed 110 issues and
  • made 444 commits in our code repository

At the time of writing (30/6/2021), we

  • closed 89 issues and
  • made 359 commits in our code repository

The details of issues (Bugs, Features, Tasks) can be found on the Github issues page

Progress in a few words#

Also noting down some thoughts along the way...

Week 1#

First week of development saw significant changes to our application. Besides the quiz functionality that I was working on, the landing page, dashboard as well as other aspects of the project had great improvements made. Though UI is not a focus in our initial phase of development, it was nice to view the application and receive visual feedback from the work that we put in. There were many challenges that we managed to overcome via discussion and experimentation. We were able to decide on the schema of data to be stored and also create a few mock data files to work with. The application was also finally deployed to the cloud and we would be able to see real time updates to it with every PR we merge. I think this week created a great foundation for us to continue to work and improve our product towards final release.

18/5/2021 - Yong Liang

Week 2#

Second week of development included UI improvements, the creation of our logo, functionality improvements and allowed for users to login to access the pages. We also added a backend on deta base to the project and revamped the UI used for documentation purposes. Continuing from the first week of development, we refactored code and cleaned up redundant functions. Whilst developing the pages, we realized that there was significant lag coming from getServerSideProps() and started using getStaticProps() instead. As development continued, we have changed the way we stored the data multiple times and created a backend API written in flask to facilitate this. And with the addition of the deta base backend, we are now able to get and post data with ease. Overall, the improvements to the app this week have been substantial and will be crucial moving forward.

25/5/2021 - Jun Xiong

Week 3#

Last week's progress was slightly slow and we had to spend some time updating all the documentation and publicity resources in preparation for milestone 1 submission. However, I am glad that the login functionality is now in place and we are in good position to make the gamification side of the project. In terms of quiz and forum functionalities, we were proceeding at a slower pace due to more considerations required in terms of data storage and communication between the front-end and the back-end. Overall, the improvements though small, were still important as we head towards more complex work in the coming month.

31/5/2021 - Yong Liang

Week 4#

We made a lot of progress last week, with forum and quiz seeing major backend improvements with relation to speed and functionality. We also improved the UI and updated most of our website to support both mobile view and dark mode. We are still behind on some of our goals like gamification and course selection but I think that with the following weeks, things will start to pick up pace. Overall, the changes made last week will put up in a better position to continue development as we start to add more pages and more features to the app.

7/6/2021 - Jun Xiong

Week 5#

Further changes were made in order to get the forum and quiz basic functionalities to be even more polish. There were many consuming tasks that though not important individually, affect the overall user experience of our application. We added things like the search and filter functionality to forum. We also started to look at the highlight of our application: the integration between forum and quiz. The ability to view a relevant post when reviewing a quiz attempt was implemented and more updates to come in the following days! Overall, I would say the week's progress was on the slower side of development. However, there were many important lessons we learned through this journey. For example, the exploration of data management packages such as SWR and react-query for the front-end data fetching mechanism. There were also many minor design bugs that we uncovered and fixed along the way. As we are soon reaching the midway of our development, we hope to keep up with the consistency and make realistic improvements towards finishing the application.

14/6/2021 - Yong Liang

Week 6#

There were many minor but meaningful UI changes as well as functionality and code abstraction. Many bugs were also addressed and we believe that the user experience will be much smoother moving forward. Refactoring oir code and cleaning up errors were also a focus of this weeks activity as we come close to finishing all our core features. Quiz and forum now link to one another seamlessly and users can see forum posts after finishing their quiz questions. Users can also change their user name with ease. Finally, we improved our documentation to include acceptance testing and other testing methods as well as some improvements to our developer guide. Overall, we managed to clean up much of our code and improved the functionality and readability of our code.

21/6/2021 - Jun Xiong

Week 7#

Last week was more hectic than expected as we were nearing milestone 2 submission. We wanted to make sure that the website is usable and without significant bugs. We also aimed to include the setup for gamification into the site so that we can share that with our testers and friends. However, the work to get all the bugs fixed while adding new functionalities was time consuming. And we had to update our documentations, posters and make a video for the submission. Overall I am glad that we managed to fulfill 80% of our intended tasks for the week. There was an interesting problem we encountered with user login that I would like to share. While developing the website locally, Jun Xiong and I usually used the same login credentials and found no issue with it. However, when we were testing the production website and Jun Xiong logged in with his GMail account, the user system was broken and all logins to the website started to use Jun Xiong's profile instead. Even though the userId for the logins were different, somehow the user retrieved from the database stuck with one user account. After some investigation, I managed to locate the source of error, which was the session mechanism. The userId was a mutable variable that was attached to the user session. Somehow that information was not mutated properly when new users are logged in. I removed the mutating variable and looked through the documentation of the authentication service that we are using. I found out that the token that comes with the session object in fact contains the userId. Therefore, I no longer need to query the userId from Firebase and could use it directly from the session object. This problem only surfaced when we use the website in production and with multiple users. A great lesson about the importance of testing, including user testing on production.

28/6/2021 - Yong Liang

Week 8#

Last week was the week after the submission of milestone 2. Along with many bug fixes, UI improvements and code optimizations we managed to accomplish a good deal. As of now, most of the UI is looking synonymous with one another but there is still some work to be done on the forum and wiki pages. We also made some changes to our backend and database designs especially for the module and quests to maintain a more consistent format throughout our application. Most of the work last week was focused on the modules, scoreboard, badges and dashboard pages as we are almost complete with the forum and quiz functionality. Moving forward we intend on finishing our final functionality updates in the coming week and start moving towards more rigors testing and documentation. All in all, I feel that the UI updates that we made in the past week has added alot more functionality to the application as a whole and if we can keep up the pace, our app will be very complete by the end of orbital.

5/7/2021 - Jun Xiong

Week 9#

As we are nearing the end of the development cycle, the main focus of the week was to complete any remaining features and make sure the use cases are supported. There were some details that we took the time to ensure they function properly. These include search and sort of quizzes as well as another round of UI improvements. We also added more content to our documentation that explain the design decisions and inner workings of the front-end components. Along the way, we fixed some bugs related to mobile view and resolved issues with regards to forum posts' order by week.

12/7/2021 - Yong Liang

Week 10#

Since this is our second last week working on this project, we have started moving from adding new features to bug fixing and improving existing features. Our main focus is getting our test coverage up and improving our documentation. Other than these, we also wanted to help improve the UX of the user and we can achieve that by implementing features that users requested for in their demo run. Working on these tasks we can ensure that our app will be ready for the final production date and be fully functional with minimal bugs. We are also working to refactor the code to improve readability and improve performance. All in all, we feel that we are on pace to be done with our core features in time for our main release.

19/7/2021 - Jun Xiong

Week 11#

Considering this the last week before submission, we took this week seriously and made a ton of updates to ensure all noticible issues are resolved. The amount of work was intense because of the changes we made to add a module context to all the interactions within the site. Also because this is the final 10%, the efforts taken to make even the slightest changes required careful attention. We are lucky enough to have a test suite running and that had major impact in speeding up the review process and ensuring that the changes made would not create regressions. I honest think that all students who persisted and reached milestone 3, they have done a fantastic job already! Looking back, consistent development work on a weekly basis was both tiring and fulfilling. To constantly think about our product and make noticeable progress over the weeks required a fair amount of passion and commitment. As a whole, I am proud of what our team achieved. Our product has a proper test suite, a comprehensive documentation (including detailed User Guide, Developer Guide and other information), as well as a reasonably well structured code base. I know there are many areas that we could continue to work on and improve further, but the product turned out more polished than I had expected. The one significant lesson that I learned from this journey is that making an great product is indeed hard and requires a tremendous amount of effort. There's no shortcut in striving towards excellence.

25/7/2021 - Yong Liang