Skip to content

Commit

Permalink
updated progress and observations
Browse files Browse the repository at this point in the history
  • Loading branch information
cheehongw committed Apr 25, 2024
1 parent a418283 commit e64682a
Show file tree
Hide file tree
Showing 2 changed files with 60 additions and 8 deletions.
41 changes: 37 additions & 4 deletions students/cheehongw/observations.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,44 @@
### Project: Foo
### Project: SourceAcademy Frontend

Sourceacademy is the an online experiential environment used for teaching students computational thinking and is used by the School of Computing in NUS and Uppsala University in Sweden to teach introductory programming modules. The frontend is built using React and Redux.

Give an intro to the project here ...

### My Contributions

Give a description of your contributions, including links to relevant PRs
In this project, I have authored and merged two PRs. They are listed as follows:
- [Fix double window prompt when uploading users #2943](https://github.com/source-academy/frontend/pull/2943)

In this PR, I fixed a long standing bug regarding the UI where two file prompts show up upon clicking a "upload csv" button. To solve this, I first reproduced the issue on my local development environment, and then identified the issue, which happened to be the incorrect use of a `<FileInput>` react component within a `<CSVReader>` component. The components were imported from a [theming library](https://blueprintjs.com/) and a [CSV parser library](https://www.papaparse.com/) respectively.



- [i18n framework #2946](https://github.com/source-academy/frontend/pull/2946)

In this PR, I laid the groundwork for future internationalization work to be done on SourceAcademy. SourceAcademy started out as a project in NUS but has plans to go international, as seen by its use in Uppsala university in Sweden. As such, adding i18n to the project will be crucial for its future.

In this PR, I introduced the use of `react-i18next` library, as well as define data structures to allow future translators to easily add on new translations and languages.

### My Learning Record

Give tools/technologies you learned here. Include resources you used, and a brief summary of the resource.
**React & Redux**

Sourceacademy is built in React and Redux, and as such, I have had to learn how to work with these two libraries. While I have used React and Redux before, I have not seen how it can be used in a large scale project like Sourceacademy. In Sourceacademy, I have seen how Redux and Redux Toolkit was used to create a typesafe global state that is shared across the entire application and I appreciate how well structured the code was in the repository.


**i18next**

i18next is a library that allows for internationalization in a React project. It is a powerful library that allows for easy translation of text in a project. During my implementation of the i18n framework in Sourceacademy, I referenced several implementations of i18n across various established open source repos such as HospitalRun and FreeCodeCamp for any best practices. From these references, I learned how to structure the i18n files and the various translation resources to make it easy for future translators to add on new translations.

Furthermore, the i18n framework that I contributed to has strong type safety and only allows keys that are defined in the translation files to be used, making it easier for future developers to see what keys are allowed on what file. I am grateful for the Sourceacademy maintainers for their guidance in this implementation.



**Practices and tools from SourceAcademy that could be adopted by CATcher**

SourceAcademy utilises Yarn as their package manager. From almost all points of view, yarn has the exact same functionality as npm, but it is faster and more reliable. As such, we could consider moving over to using Yarn in CATcher as well.


Furthermore, I was particularly impressed with the testing framework that they had to ensure any new changes were not breaking.



27 changes: 23 additions & 4 deletions students/cheehongw/progress.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# CS3282 Progress

## Summary

- Reviewed PRs of CS3281 students and external contributors in CATcher and WATcher
- In-person guidance with CS3281 mentees over telegram
- Maintained and upgraded libraries in CATcher
- Created two PRs in external project - SourceAcademy


## Before-semester contributions

### CATcher
Expand All @@ -22,10 +30,7 @@
| 29 Jun - 18 Jul | PR Reviewer | [Add reset labels feature #150](https://github.com/CATcher-org/WATcher/pull/150) | Mentored PR author to improve code quality and readability
| 30 Jun 2023 | PR Reviewer | [Show loading spinner on switch repository #151](https://github.com/CATcher-org/WATcher/pull/151)
| 28 Oct 2023 | PR Reviewer | [Option to Limit Repository Access #215](https://github.com/CATcher-org/WATcher/pull/215)
|


## Semester contributions

### CATcher

Expand All @@ -35,13 +40,27 @@
| Week 4 | PR Author | [Angular 12 #1242](https://github.com/CATcher-org/CATcher/pull/1242)
| Week 5 | PR Reviewer | [Faulty list view when back navigating #1243](https://github.com/CATcher-org/CATcher/pull/1243)
| Week 6 | PR Reviewer | [Fix markdown blockquote preview difference #1245](https://github.com/CATcher-org/CATcher/pull/1245)
| Week 6 | Issue Reporter | [Migrate to ESLint #1247](https://github.com/CATcher-org/CATcher/issues/1247)
| Week 7 | PR Reviewer | <ul><li>[Create release 3.5.3 #1252](https://github.com/CATcher-org/CATcher/pull/1252)</li><li>[New release for 3.5.3 #1254](https://github.com/CATcher-org/CATcher/pull/1254)</li></ul> | Assisted in the creation of new CATcher release
| Week 7 - 8| Issue Reporter & PR Author | <ul><li>[Clean up dependencies #1248](https://github.com/CATcher-org/CATcher/pull/1248)</li><li>[Remove wait-on from devDep #1244](https://github.com/CATcher-org/CATcher/issues/1244)</li><li>[tslib unused #1246](https://github.com/CATcher-org/CATcher/issues/1246)</li><li>[Remove node-fetch as direct dependency #1253](https://github.com/CATcher-org/CATcher/issues/1253)</li></ul> | Address neglected depenedencies in CATcher
| Week 11 | PR Reviewer | [https://github.com/CATcher-org/CATcher/pull/1240](https://github.com/CATcher-org/CATcher/pull/1240)
| Week 11 | PR Reviewer | [Add documentation for CATcher's parser #1240](https://github.com/CATcher-org/CATcher/pull/1240) |
| Week 13 | PR Reviewer | [Add login redirect #1256](https://github.com/CATcher-org/CATcher/pull/1256) |


### WATcher

| Date | Role | Description | Key Achievements |
| ---- | ---- | ----------- | ---------------- |
| Week 4 | PR Reviewer | [Show list of hidden users #235](https://github.com/CATcher-org/WATcher/pull/235)
| Week 4 | PR Reviewer | [Build in Github Actions #239] (https://github.com/CATcher-org/WATcher/pull/239)
| Week 5 | PR Reviewer | [Remove unused session-fix-confirmation component #250](https://github.com/CATcher-org/WATcher/pull/250)
| Week 5 | PR Reviewer | [Remove unused models #253](https://github.com/CATcher-org/WATcher/pull/253)
| Week 6 | PR Reviewer | [Upgrade to Angular 11 #252](https://github.com/CATcher-org/WATcher/pull/252)
| Recess | PR Reviewer | [Fix zone testing import error #269](https://github.com/CATcher-org/WATcher/pull/269)

### SourceAcademy

| Date | Role | Description | Key Achievements |
| ---- | ---- | ----------- | ---------------- |
| Week 13 | PR Author | [Fix double window prompt when uploading users #2943](https://github.com/source-academy/frontend/pull/2943) | Fixed a bug
| Week 13 | PR Author | [i18n framework #2946](https://github.com/source-academy/frontend/pull/2946) | Laid the groundwork for internationalization in source academy

0 comments on commit e64682a

Please sign in to comment.