The project is now hosted on Here, you can try it out!
What is CoursePrettier?
CoursePrettier is a web-based project that aims to provide a better course schedule experience for students in ShanghaiTech University. With CoursePrettier, students can log in to their school account and enjoy a more refined course table that is visually appealing and easy to read.
Why we need CoursePrettier?
The old EAMS system in ShanghaiTech University is what we need to deal with from day to day. However, the course table is much hard to use. Students may have to navigate through multiple pages on their university’s website to access their course schedules. Students may even have to manually enter their course schedules into their calendars, which can be time-consuming and prone to errors.
The course schedules are presented in a visually appealing and user-friendly format, making it easier for students to read and understand.
How to use CoursePrettier?
- Go to the CoursePrettier website and login in to you EAMS account.
You can change the color scheme using the Color Mode button.
Once your schedule is loaded, you can click on “导出日历文件”(Export to Calendar) to download an ICS file.
- CoursePrettier generates an ICS (iCalendar) file that you can import into various calendar applications, such as Google Calendar, Apple Calendar, or Microsoft Outlook. You can open your preferred calendar application and then import the ICS file into it.
That’s a basic overview of how to use CoursePrettier. It is designed to be intuitive and easy to use, so you should be able to start using it right away after logining in. If you have any questions or issues, you can always refer to the documentation or contact me.
How does CousePrettier work?
Since we need to get course infomation from EAMS system, we have to login to your school account. However, Due to the restriction of ShanghaiTech Unified Identity and Cross-Origin Resource Sharing (CORS), we can not use the authorization system directedly.
To work around this issue, we reverse engineered the EAMS system, known as ShanghaiTech One API. So everyone can use school services as APIs and develop more useful tools.
The CoursePrettier backend sends an HTTPS request to the EAMS system with the student’s login credentials. Then the EAMS system authenticates the credentials and returns an HTML response containing the student’s course schedule. The CoursePrettier backend analyzes the HTML response to extract the relevant course information, such as the course name, time, location, and instructor.
The CoursePrettier would NEVER preserve your login credentials or any personal identities of users. The login credentials will be destroied right after logining in, and the all the interacting is based on UUID4 (Universally Unique Identifier Version 4) which is randomly generated and no one can get your personal infomation by that.
How to contribute to CoursePrettier?
Source code is on Backend and Frontend, welcome to contribute!
Acknowledgement
Some content above was generated by ChatGPT