From 5f317111ebf91aee3b8ff7adbbf2a112e3b4c309 Mon Sep 17 00:00:00 2001 From: domoberzin Date: Sun, 14 Apr 2024 13:07:17 +0800 Subject: [PATCH] update progress --- students/domoberzin/knowledge.md | 31 ++++++++++++++++++++++++++++++- students/domoberzin/progress.md | 14 ++++++++++++-- 2 files changed, 42 insertions(+), 3 deletions(-) diff --git a/students/domoberzin/knowledge.md b/students/domoberzin/knowledge.md index 54ab8b958..0e07291b0 100644 --- a/students/domoberzin/knowledge.md +++ b/students/domoberzin/knowledge.md @@ -32,7 +32,36 @@ Having only used `SQLite` and `MySQL` in the past, I had to familiarise myself w Aspects Learnt: - Learnt about PostgreSQL's architecture, including its use of processes for client connections, MVCC (Multiversion Concurrency Control), and its write-ahead logging (WAL) for data integrity +- Write-Ahead Logging (WAL) involves recording changes to a log before any changes are made to the actual database. This method is crucial for recovery after a crash, as it ensures that all committed transactions are saved. +- MVCC allows multiple users to access the database concurrently without locking the data. This means readers don't block writers and vice-versa, leading to increased performance and lower waiting times during operations, which is a significant advantage over MySQL's more traditional locking mechanisms - Learnt about the differences between the 3 SQL database engines Resources: -- [Differences between `MySQL`, `SQLite` and `PostgreSQL`](https://www.digitalocean.com/community/tutorials/sqlite-vs-mysql-vs-postgresql-a-comparison-of-relational-database-management-systems) \ No newline at end of file +- [Differences between `MySQL`, `SQLite` and `PostgreSQL`](https://www.digitalocean.com/community/tutorials/sqlite-vs-mysql-vs-postgresql-a-comparison-of-relational-database-management-systems) + + +### Angular + +Having had no experience utilising Angular prior to working on TEAMMATES, I was introduced to several neat features that Angular has to offer. + +Aspects Learnt: + +- Angular's component-based architecture makes it easy to build and maintain large applications. Each component is encapsulated with its own functionality and is responsible for a specific UI element. This modularity allowed me to quickly understand and contribute to the project, as I could focus on individual components without being overwhelmed by the entire codebase. + +- Angular's dependency injection system is a design pattern in which a class receives its dependencies from external sources rather than creating them itself. This approach simplifies the development of large applications by making it easier to manage and test components. + +- Angular offers the `trackBy` function, which I used in conjunction with the `*ngFor` directive to manage lists more efficiently. Normally, `*ngFor` can be inefficient because it re-renders the entire list when the data changes. However, by implementing trackBy, Angular can track each item's identity and only re-render items that have actually changed. This reduces the performance cost, especially in large lists where only a few items change. + +### Google Cloud + +When deploying the staging environment for the ARF upgrade, I managed to work with and gain familiarity with the deployment workflow, as well as several GCP tools and the `gcloud` sdk. + +### Snapshot Testing + +Snapshot testing with Jest is an effective strategy to ensure that user interfaces remain consistent despite code changes. It's important for developers to maintain updated snapshots and commit these changes as part of their regular development process. + +Snapshot tests are particularly useful for detecting unexpected changes in the UI. By capturing the "snapshot" of an output, developers can compare the current component render against a stored version. If changes occur that aren't captured in a new snapshot, the test will fail, signaling the need for a review. + +### E2E Testing + +E2E Testing allows us to ensure that the application functions as expected from the perspective of the user. This type of testing simulates real user scenarios to validate the complete functionality of the application. Common tools for conducting E2E testing include Selenium, Playwright, and Cypress. \ No newline at end of file diff --git a/students/domoberzin/progress.md b/students/domoberzin/progress.md index d48e02bd1..f118417d3 100644 --- a/students/domoberzin/progress.md +++ b/students/domoberzin/progress.md @@ -42,5 +42,15 @@ | 11 | Reviewed PR: [[#11878] Change institute length limit #12974](https://github.com/TEAMMATES/teammates/pull/12974) | | 11 | Reviewed PR: [[#11878] Foundation for getting by ID in account request endpoints #12957](https://github.com/TEAMMATES/teammates/pull/12957) | | 11 | Reviewed PR: [[#11878] Add AccountRequest Rejection email generator. #12987](https://github.com/TEAMMATES/teammates/pull/12987) | -| 11 | Authored PR: [[#11878] Add Edit and Approve Account Requests functionality #12975](https://github.com/TEAMMATES/teammates/pull/12975) | -| 11 | Authored PR: [[#11878] Fix Account Request Update Search Indexing #12984](https://github.com/TEAMMATES/teammates/pull/12984) | \ No newline at end of file +| 11 | Merged PR: [[#11878] Add Edit and Approve Account Requests functionality #12975](https://github.com/TEAMMATES/teammates/pull/12975) | +| 11 | Merged PR: [[#11878] Fix Account Request Update Search Indexing #12984](https://github.com/TEAMMATES/teammates/pull/12984) | +| 12 | Merged PR: [[#11878] Create Rejection Modal for Account Requests #12989](https://github.com/TEAMMATES/teammates/pull/12989) | +| 12 | Merged PR: [[#11878] Convert RejectAccountRequestAction to use transactions #13001](https://github.com/TEAMMATES/teammates/pull/13001) | +| 12 | Reviewed PR: [[#11878] Update ResetAccountRequest to reference by ID #13002](https://github.com/TEAMMATES/teammates/pull/13002) | +| 12 | Merged PR: [[#11878] Add Error Message for Approving Existing Account #13004](https://github.com/TEAMMATES/teammates/pull/13004) | +| 12 | Merged PR: [[#11878] Handle Duplicate Approved Account Requests #13009](https://github.com/TEAMMATES/teammates/pull/13009) | +| 12 | Reviewed PR: [[#11878] Merge master into feature #13011](https://github.com/TEAMMATES/teammates/pull/13011) | +| 12 | Reviewed PR: [[#11878] Remove unused modal in AdminHomePage #12998](https://github.com/TEAMMATES/teammates/pull/12998) | +| 12 | Authored PR: [[#11878] Add tests for Account Request Table #12977](https://github.com/TEAMMATES/teammates/pull/12977) | +| 12 | Authored PR: [[#11878] Add Admin E2E Tests #13020](https://github.com/TEAMMATES/teammates/pull/13020) | +| 12 | Set-up the staging environment for testing the new Account Request Form features | \ No newline at end of file