You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- I intend to deploy this bot for all subsequent semesters of CS1010S for the foreseeable future
9
-
- v3.0 is meant to be the final major release, but any new plans will be documented in [Issues](https://github.com/pakshuang/CS1010S-reminder-bot/issues)
10
-
- v3.1 ports the Bot into a form that can be deployed on AWS Lambda
11
+
- Any new plans will be documented in [Issues](https://github.com/pakshuang/CS1010S-reminder-bot/issues)
- Everyday, reminders for the day and the next 2 days are compiled into a single message
21
26
- This message is nicely formatted with direct hyperlinks for assignments, emojis, font styles, and also uses Inline Keyboard Markup for links to the learning portal Coursemology and to subscribe to the Channel.
22
27
- This message is broadcast on the [Telegram Channel](https://t.me/CS1010S_reminders) and the Channel automatically pushes to the Telegram Supergroup for the semester
23
28
- Some tasks have multiple deadlines, only the relevant dates (and respective EXP values) are shown.
24
29
- The components of the reminder message are:
25
30
- Academic task reminders
26
-
- COVID test reminders
27
31
- Level progress tracking
28
32
- Exam countdowns
33
+
29
34
### Backend
35
+
30
36
- CI/CD pipeline: Pushing to the private repository sends a webhook to AWS CodeBuild which pulls from the public and private repositories and triggers a new AWS Lambda build
31
37
- GitHub Webhooks for triggering AWS CodeBuild
32
38
- AWS CodeBuild for building
@@ -36,20 +42,3 @@ Telegram bot that reminds students about deadlines, exams, and more for the NUS
36
42
- Beautiful Soup 4 for the web scraping of Coursemology for deadline data
37
43
- Primarly Pandas for the generation of reminder messages
38
44
- Telegram Bot API for broadcasting reminders
39
-
40
-
## How the Progress Tracker is designed:
41
-
### Disclaimer
42
-
This progress tracker is unofficial. It is an interpretation of the data in an attempt to provide realistic expectations for students to benchmark themselves, YMMV. Special thanks to [@wjiayis](https://github.com/wjiayis) for helping me design the tracker's models
43
-
### Concept
44
-
- The idea is to provide a reference for what level students should reach that week in order to be on track to reach level 50 by a certain target week (e.g. reach level 50 in Week 10 of the semester)
45
-
- It is not sufficient to provide a linearly extrapolated projection from Week 1 to the target week as the workload of assignments and thus available EXP will vary throughout the semester
46
-
### Data Analysis and Modelling
47
-
- Real-world student EXP data was taken from the AY21/22 Sem 1 lecture slides and superimposed onto a graph (left).
48
-
- The 3 lines were fitted to the data such that it provided a good range of progressions towards level 50, the "hardest" green line finishing the fastest but with a greater increase in level each week, the "easiest" orange line having the least increase in level each week but still finishing before the cutoff. Data from Coursemology indicates that 60% of the AY21/22 Sem 1 cohort reached level 50 by the cutoff date, meaning the orange line roughly projects the progression of the 40th percentile, so projections that fail to reach level 50 will not be shown by the Progress Tracker
49
-
- The fitted lines are discretized by week so that the Tracker shows the target level to reach by the end of the week, which allows students more leeway as well as a greater capacity to plan for the week (right)
0 commit comments