Description
In high schools, students often struggle to connect with peers and friends in the same classes due to a lack of visibility into each other's schedules. Often, students post their schedules on social media for this purpose before the beginning of a semester, however, this is not very convenient. In addition, this makes forming study groups, coordinating project meetings, and meeting up with friends unnecessarily difficult. SchoolLife is a web platform where high school students can securely share their class schedules and view those of their peers within their school community. It serves as a centralized hub for student connection and academic collaboration. I used Github to make my project, utilizing local development with Flask’s built-in server. For the backend, I used Python with Flask framework for routing and server logic. For the database, I used SQLAlchemy ORM and SQLite, as they were easy to operate with. For the frontend, I used HTML and Jinja templates, along with custom CSS styling. I implemented user authentication using Flask as well.
Purpose
As a student myself, I've experienced the challenge of trying to find classmates and friends for group projects, study sessions, and even lunch. Without a centralized way to see who shares your classes, us students often rely on word-of-mouth or social media groups that are fragmented and inefficient. I built SchoolLife to solve this exact problem ! My web platform presents an opportunity to reduce academic/social isolation (students, new and old, can easily find peers in their classes), promote collaborative learning (coordinating study sessions), and build more inclusive and social communities. While currently designed for high schoolers, SchoolLife has the potential to be expanded to university settings, where schedule coordination is even more complex. If developed further, it could be integrated with school systems with proper privacy safeguards; have more features such as in-built messaging, sharing notes, and filtering by name/teacher/subject; and be designed as a mobile app for easy access.
How it works
User Capabilities:
- Account creation: Students register with basic information (name, password)
- Joining schools: Students can either join a community or create one -> In order to create a community, they must provide the school name and the number of periods in a day
- Schedule management: Students input their class schedules by period, subject, and teacher
- Community interaction: Users can view other students' schedules easily
- Account management: Users can change their username, password, and profile color
Key Features Implemented:
- User authentication: Secure login/logout functionality and password security
- Account management: Users can edit their information
- Form handling: Validation and feedback for user inputs
- Schedule visualization: Daily schedule display
- Responsive Design: works on both desktop and mobile browsers
Sample user stories:
- I’m new to this school. I want to find peers in my AP Chemistry class so I can ask them questions and not fall behind on the content.
- I’m preparing for my math exam. I don’t know who else is also preparing for it, but I would like to form a study group and share notes !
- The semester has just started, but I’m not sure who shares the same lunch break as me. I would like to find some friends to sit with.
I created three tables in a SQLite database. The first one, named Users, stores the user id, username, password, community, whether they’ve provided their schedule, and their profile color. The second table, named Community, stores the school id, school name, and the number of periods in a day. The third table, named Schedule, stores the username, period, subject, and teacher.
As for external resources, I used Flask and SQLAlchemy documentation. I also used Flexbox for layout design. In addition, I used Figma to come up with the basic designs as a reference.
Log in or sign up for Devpost to join the conversation.