Inspiration
Berkeley is a competitive school and many course offerings are well known for their academic rigor. in order to plan their class schedules, Berkeley students regularly rely on unit values of the courses to estimate the weekly time commitment they require. The Academic Senate defines one unit as three hours of work per week. Therefore, most major requirement courses are of 3 or 4 units, equivalent to 9 or 12 hours per week. However, almost every Berkeley student knows that this is usually an underestimate. Alumni and even the professors admit that most courses take way more time to do well in it than what is implied in unit values. Popular classes such as CS 61A even draw criticism due to students end up spending more than 12 hours per week to complete the required lectures, homework, labs, projects, and exam practice. We don't think there is anything wrong with making a course demanding, but a lack of information on how much time is really needed hinders students' ability to make informed decisions on what classes to take. Right now, students usually rely on words to gauge a class' workload: they will ask their friends and upperclassmen who have taken the course. This approach is not perfect, however, because each people may perceive difficulty a bit differently and sometimes it's hard to find someone who has actually taken the class. Therefore, we decide to create a RateMyProfessor-style website so that students can rate and view courses' workload information in one stop.
What it does
CalRate is a platform that can enable students to rate a course's real workload and time commitment based on their personal experience during the semester. Their ratings will be used to calculate the average rating of a course which represents the average opinion on how much time the course actually takes each week. Students can search the database during the enrollment period, allowing them to make better-informed decisions on which course to take and how many units to enroll.
How we built it
We use the Anvil web app builder as our main tool. We create a Data Table to store the average course ratings and then we use Python to implement a searching tool to enable users to search the data table for the courses of interest. We also use Python to implement the data updating algorithm so that the average rating of a course can be correctly updated when someone submits a new rating, and a new course entry will be created when someone rates a new course.
Challenges we ran into
We are somewhat unfamiliar with the Anvil environment when starting out, so it takes us some time and effort to learn how to use this tool. In the end, we are able to overcome this difficulty by closely reading the documentation and searching for answers on forums.
Accomplishments that we're proud of
After we finish the app, we are most proud of the fact that this working web app can actually go out there and help our fellow Berkeley students, especially those with less personal connections and social resources. With proper advertisement, we believe this platform can really help students make more reasonable plans about their upcoming semester, knowing what to expect from each course they choose.
What we learned
During the process of completing this project, there are many valuable takeaways. Most importantly, this project provides an opportunity for us to learn how to use the web app building tool Anvil, which, as part of our software engineering skillsets, can benefit us in future studies or work. Also, we learn the
What's next for CalRate
Next, we want to start by making this platform available and known among Berkeley students. As a crowdsourcing app, its success also relies on more people using it. We will start out by inviting our friends to try out and provide ratings for the courses they have taken. This will give us valuable feedback and allow us to further polish the UI and functionalities. This will also generate initial data so that when it is online for all students to use, they will already find it useful. In the long run, we also hope to integrate this with another functionality: sharing course resources. Some classes have instructor-provided extra resources - notes, Youtube videos, books, to help those students that find course materials insufficient, but many others don't. We want to build a platform that allows students that have taken the course to take the lead and share resources they find helpful. Together with this, we believe CalRate can further support our fellow Berkeley students in completing a successful college career.
Built With
- anvil
- python
Log in or sign up for Devpost to join the conversation.