Skip to content

Commit 44dfbdf

Browse files
committed
Update readme
1 parent 05fa5e1 commit 44dfbdf

File tree

1 file changed

+10
-21
lines changed

1 file changed

+10
-21
lines changed

README.md

Lines changed: 10 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,38 @@
11
# CS1010S Reminder Bot
2-
![GitHub release (latest by date)](https://img.shields.io/github/v/release/pakshuang/CS1010S-Reminder-Bot) ![AWS CodeBuild](https://codebuild.ap-southeast-1.amazonaws.com/badges?uuid=eyJlbmNyeXB0ZWREYXRhIjoiTDN1NjRCTDQySk8yNnVvUzhkWWszWENmRmkxK0VPcm03QWNEd0lzVkhmRmFIL3k0bFVXdmxid0tEeDJnTmNSdGwwWUdFM2kxQ0ZVT25KOUZYRTN6TVBJPSIsIml2UGFyYW1ldGVyU3BlYyI6Imc1UnEvRklJWFVPbHVPbHEiLCJtYXRlcmlhbFNldFNlcmlhbCI6MX0%3D&branch=main)
2+
3+
![GitHub release (latest by date)](https://img.shields.io/github/v/release/pakshuang/CS1010S-Reminder-Bot) ![AWS CodeBuild](https://codebuild.ap-southeast-1.amazonaws.com/badges?uuid=eyJlbmNyeXB0ZWREYXRhIjoiTDN1NjRCTDQySk8yNnVvUzhkWWszWENmRmkxK0VPcm03QWNEd0lzVkhmRmFIL3k0bFVXdmxid0tEeDJnTmNSdGwwWUdFM2kxQ0ZVT25KOUZYRTN6TVBJPSIsIml2UGFyYW1ldGVyU3BlYyI6Imc1UnEvRklJWFVPbHVPbHEiLCJtYXRlcmlhbFNldFNlcmlhbCI6MX0%3D&branch=main)
34

45
Telegram bot that reminds students about deadlines, exams, and more for the NUS module CS1010S Programming Methodology
56
[Telegram Channel](https://t.me/CS1010S_reminders)
67

78
## Project Status
9+
810
- 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)
1112

1213
## Sample
14+
1315
<img src="https://user-images.githubusercontent.com/81917538/144759067-78c65e57-6256-4703-bc52-17d6747afd1b.png" width="300"/>
1416

1517
## Impact
18+
1619
<img src="https://user-images.githubusercontent.com/81917538/143457371-5f6621b2-9bfa-43d3-a44c-edd745e3b0bb.png" alt="Sample" width="200"/>
1720

1821
## Bot Features
22+
1923
### Frontend
24+
2025
- Everyday, reminders for the day and the next 2 days are compiled into a single message
2126
- 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.
2227
- 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
2328
- Some tasks have multiple deadlines, only the relevant dates (and respective EXP values) are shown.
2429
- The components of the reminder message are:
2530
- Academic task reminders
26-
- COVID test reminders
2731
- Level progress tracking
2832
- Exam countdowns
33+
2934
### Backend
35+
3036
- 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
3137
- GitHub Webhooks for triggering AWS CodeBuild
3238
- AWS CodeBuild for building
@@ -36,20 +42,3 @@ Telegram bot that reminds students about deadlines, exams, and more for the NUS
3642
- Beautiful Soup 4 for the web scraping of Coursemology for deadline data
3743
- Primarly Pandas for the generation of reminder messages
3844
- 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)
50-
51-
<p float="left">
52-
<img src="https://github.com/pakshuang/CS1010S-reminder-bot/blob/b987814d24c62235e9e89404bd8fa27edbe345ee/images/progress_tracker_model.png" width="400"/>
53-
<img src="https://github.com/pakshuang/CS1010S-reminder-bot/blob/b987814d24c62235e9e89404bd8fa27edbe345ee/images/progress_tracker_model_floored.png" width="400"/>
54-
</p>
55-
<img src="https://user-images.githubusercontent.com/81917538/144758516-6cee1b1a-2e14-4834-b9e1-56d4df8ae656.png" alt="Sample" width="300"/>

0 commit comments

Comments
 (0)