Inspiration
Every year, I faced the same issue. I had no idea what each teacher was like. I ended up having to trust people that I normally wouldn't when asking them how a teacher was, and it usually resulted in me preparing for a strict teacher that was never strict. To fix this issue, I thought of creating a RateMyProfessor equivalent for Middle and High School Students.
What it does
This app uses a Django backend that serves as an account system, and a way to manage all teachers added in the system. If you want to see, go to "127.0.0.1:8000/admin" and log in with the credentials, username: "admin1", password: "testuser". All teachers are added in the admin panel, and then can be viewed by regular students. All schools are added the same way. However, this could change, allowing for a more automated system, where students can vote if a new teacher has joined the school, or a old one has left.
Teachers are connected to their school, and the school lists all teachers in it. This allows the teacher information page to show what school they teach in, and the school information page to list all teachers that are teaching at their school.
Teachers also contain metadata on what classes they teach, or what grades they teach. This makes it simpler to use the search functionality, as people can find the teacher they are looking for without searching 20 teachers with the last name "Smith".
Lastly, teachers contain reviews, and an average rating. This allows students to write appropriate reviews for their teachers, and allows other students to see what the teacher might be like next year.
How I built it
I built this after failing to build a school-sketching tool in JavaFX. This was built using Django's super-simple ORM, and using their account system and database tools, I was able to make a working connected background database that stored teachers into schools and students' reviews in teacher profiles. After this, I used Bootstrap 5's css to style my pages, giving the page its simple and elegant look, while containing all the information it needs to run.
Challenges I ran into
There were many problems when the database connections I made were not successful. For example, many times occurred where a new user would break the entire database because a value they were supposed to set was set to null. However, I went through this by debugging and finding solutions, such as using postsave differently to allow new users to pick up their new information successfully.
Accomplishments that I'm proud of
I am proud of the UI arrangement I created for the review sections. I used a combination of headers and cards to create an easily navigable UI that anyone, from pre-school to high school could use. I am also proud of how fast I was able to finish this project. I logged over 17 hours in a project that fit in 27 hours, which is something that I have never done. My speed in doing this project and my precise UI arrangement are 2 things that I am extremely proud of.
What I learned
Some things I learned were about the delicateness of databases. I have never dealt with databases a lot, mainly following tutorials in the past, but getting hands-on with them taught me about how precise every parameter needed to be. I also learned about simple HTML layouts, such as a table to keep inline objects next to each other, or 2 columns to separate two halves of the code.
What's next for RateMyTeachers
I plan on deploying this project to my middle school, after some better refinements, or even deploy it to the district, with the plan to allow students to know their teachers before the first day, giving them ample time to prepare for the change that will occur. I also plan on hopefully bringing in moderators that moderate reviews and teacher profiles so all people have new information readily accessible to them.
Log in or sign up for Devpost to join the conversation.