-
Notifications
You must be signed in to change notification settings - Fork 112
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Showing
9 changed files
with
157 additions
and
0 deletions.
There are no files selected for viewing
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
+++ | ||
title = "LehrEinsatzPlanung" | ||
project_id = "M3" | ||
|
||
# Properties for displaying the project in the project list | ||
card_image = "LEP.png" | ||
card_description = "AI-powered timetable solver" | ||
|
||
team = ["Nikol Stefanova", "Kim Ngan Le Dang","Hikari Sophia Stölzle"] | ||
supervisor = "Prof.Dr. Gefei Zhang" | ||
draft = true | ||
+++ | ||
|
||
Welcome to LEP, Powered by TimeFold AI: Revolutionize The University Timetabling with Our Smart, Automated Scheduling Solution! | ||
|
||
Embrace simplicity in academic scheduling with LehrEinsatzPlanung tool. Teachers effortlessly submit their availability and course details, while administrators easily manage the automated, optimized timetable creation. Discover the Future of Efficient and Optimized Academic Planning. | ||
|
||
{{<section title="Our Goal">}} | ||
The task of creating university timetables is a complex work at HTW Berlin, traditionally managed by a small team facing a huge amount of data. Each semester, they receive Excel sheets from hundreds of faculty members, each detailing courses, availability, and specific preferences. The work of creating a suitable, coherent schedule is often time-consuming, complicated, and repetitive. The process, demanding intense human effort and great attention to detail, typically consumes up to one and a half weeks per course of study and its semesters. | ||
|
||
This is where LEP steps in. Our goal is to automate this manual scheduling process, transforming weeks of work into mere minutes of efficiency. With our app, teachers can easily input their information, and administrators can then execute an automated solution. This powerful tool intelligently considers all necessary defined constraints, producing a well-matched and optimized schedule with remarkable speed and accuracy. | ||
|
||
{{</section>}} | ||
|
||
|
||
{{<section title="The team">}} | ||
Our team consists of three students, each contributing a unique set of skills to this practical project. We combine front-end , back-end development, database management, and unit testing to create an effective application. Our collaborative approach extends beyond our team - we actively engage with our project supervisor and the university's scheduling staff, ensuring that our solution is well tailored to meet the actual needs of university. Together, we're not just coding an application, we're redefining how academic scheduling is done. | ||
{{</section>}} | ||
|
||
{{<gallery>}} | ||
{{<team-member image="cat.jpg" name="team member cat">}} | ||
{{<team-member image="kitty.jpg" name="team member cat">}} | ||
{{</gallery>}} | ||
|
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
+++ | ||
title = "Challenges" | ||
weight = 1 | ||
+++ | ||
|
||
{{<section title="UI">}} | ||
|
||
|
||
In the initial stages of development, one key challenge our team faced was designing a user interface (UI) that effectively accommodates the input of constraints and preferences from teachers. Creating a user-friendly and simple UI for teachers to specify their requirements posed a significant hurdle, as it required striking a balance between complexity and user-friendliness. We undertook extensive brainstorming sessions ensuring that it could efficiently capture the nuanced constraints and preferences without overwhelming the teacher. | ||
|
||
{{</section>}} | ||
{{<section title="Data">}} | ||
|
||
One of the first problems in our development journey was about efficiently reading and importing the data stored in Excel files into our database. Handling data migration from Excel to a database format was challenging, as the structure of Excel files differs significantly from relational databases. We needed to devise a systematic approach to parse and extract information from these files, ensuring accuracy and maintaining data integrity during the transition. | ||
|
||
{{</section>}} | ||
{{<section title="Solving library">}} | ||
|
||
In our student project, the challenge lay in crafting a time planning system that follows constraints such as non-overlapping lectures and exclusive teacher commitments. Our search for an open-source solution led us to Timefold, a promising library in the realm of automated schedule generation. However, integrating Timefold into our project posed its own set of challenges. The adaptation process required in-depth comprehension, with the addition of annotations and the creation of specific classes and data structure adjustment to align our code with Timefold's functionality. The library proved to be transformative, becoming the backbone of our project. Timefold, by virtue of its capabilities, emerged as a pivotal asset, contributing significantly to the overall success of our endeavor. In overcoming these challenges, we not only technically integrated Timefold but also elevated the efficiency and effectiveness of our time planning system. | ||
{{</section>}} | ||
|
||
{{<section title="Timefold">}} | ||
|
||
Addressing the intricacies of constraint formulation within the development project presented a notable challenge. The specified constraints were documented in a human-readable manner, and the subsequent task centered on adeptly translating them into a format compatible with Timefold for scoring solutions. Timefold operates with constraints structured in a stream-like fashion, introducing an additional layer of complexity to the translation process. | ||
|
||
|
||
{{</section>}} | ||
|
||
{{<section title="Security">}} | ||
In light of our project's engagement with sensitive personal information, ensuring robust security measures was a paramount concern. To safeguard the stored data in MongoDB and prevent any potential data leaks, we implemented a meticulous approach involving the utilization of Java Cryptography Extension (JCE) and Java Cryptography Architecture (JCA) for data anonymization. This ensured that data remained secure and inaccessible to unauthorized entities. Navigating the intricacies of implementing data anonymization using JCE and JCA presented a significant initial challenge. However, the complexity intensified during the integration of the login functionality. Overcoming the hurdles of configuring Cross-Origin Resource Sharing (CORS) options to permit specific origins and filtering out unauthorized login attempts proved to be a formidable task. The most intricate aspect of the process emerged during the seamless integration with Spring Boot, where adhering to the Spring Boot conventions posed a notable challenge. Despite these challenges, our team successfully addressed these complexities, establishing a secure foundation for the project's functionality. This dedication to data security ensures a safe and confidential environment for the users of our platform. | ||
|
||
|
||
{{</section>}} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
+++ | ||
title = "Features" | ||
weight = 1 | ||
+++ | ||
|
||
{{<section title="Automated planning for semester type & course of study">}} | ||
|
||
Solve schedule individual course of study with selected semester type. | ||
Solve schedule for all courses of study with selected semester type. | ||
→ Reduce the time of manual planning | ||
{{</section>}} | ||
{{<section title="Admin/Teacher role">}} | ||
|
||
Separate role as in real scenario, each role has its own permission to use certain features of the app | ||
{{</section>}} | ||
{{<section title="Features for teacher">}} | ||
Teachers can log in and have an overview of their modules and schedule | ||
Can select their time availabilities, and other preferences | ||
Can select their committee activities and mandatory events | ||
Can edit module configurations, such as adding groups and specifying preferred rooms | ||
{{</section>}} | ||
{{<section title="Features for admin">}} | ||
Admins can create schedules in one click | ||
Can see schedule of a course of study or per semester | ||
{{</section>}} | ||
{{<section title="Other features for both roles">}} | ||
|
||
|
||
English and German language settings | ||
Available rooms information of the FB | ||
|
||
|
||
{{</section>}} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
+++ | ||
title = "Future" | ||
weight = 1 | ||
+++ | ||
|
||
{{<section title="Future">}} | ||
|
||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla facilisis neque id vulputate malesuada. Quisque dignissim finibus urna sed sagittis. | ||
|
||
|
||
{{</section>}} |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
+++ | ||
title = "Process" | ||
weight = 1 | ||
+++ | ||
|
||
{{<section title="Research">}} | ||
In the project's initial phase, we conducted thorough research to establish a robust foundation for our web application. This involved exploring diverse technology stacks, evaluating programming languages, databases, and frameworks. We studied similar applications for inspiration and best practices. The implementation of timetable and schedule-solving algorithms was a key focus, with a careful assessment of existing solutions. We directly engaged with the planning team, gaining insights into manual planning methods and specific requirements. Familiarity with provided data, including subjects and teacher preferences, guided our application design. The planning process included identifying constraints for the solver, from basic scheduling rules to department-specific requirements. This comprehensive research laid the groundwork for effective planning, development, and the successful implementation of our web application. | ||
{{</section>}} | ||
{{<section title="Brainstorming & Prototyping:">}} | ||
|
||
|
||
In the second phase, our team engaged in creative brainstorming and prototyping to mold the structure and design of the project. We utilized FigJam as a proficient platform for collaborative brainstorming sessions, where we delved into discussions regarding the optimal structure of the database. Our focus was on defining entities and outlining the overall architecture of the database. Transitioning to Figma, our team dedicated efforts to prototyping, with a specific emphasis on the front-end (FE) design. This phase involved meticulously defining the user interface and experience. Our goal was to ensure a user-friendly and visually appealing design that seamlessly aligned with the project's objectives. | ||
|
||
{{</section>}} | ||
{{<section title="Development & Testing:">}} | ||
|
||
|
||
The concluding phase revolved around the actual development and testing of the application. We adopted an Agile SCRUM methodology, fostering efficient collaboration within the development team and ensuring a streamlined workflow. The use of GitHub as a project management tool played a crucial role in facilitating effective issue tracking and resolution. In this phase, the application was implemented following a Minimum Viable Product (MVP) approach, encompassing both the front-end (FE) and back-end (BE) components. To ensure the robustness of the application, comprehensive unit tests were conducted, with a particular focus on constraints identified during the initial research. User testing was a collaborative effort with the admin to gather feedback on usability. Simultaneously, manual testing was meticulously performed to identify and rectify any unforeseen issues, thereby guaranteeing a polished and reliable final product. | ||
|
||
|
||
{{</section>}} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
+++ | ||
title = "Tech Stack" | ||
weight = 1 | ||
+++ | ||
|
||
{{<section title="App Development:">}} | ||
|
||
Frontend: | ||
ReactJS & TypeScript: Our core frontend framework, enabling us to build a dynamic, interactive user interface with type-checking for a reliable and scalable application. | ||
React-Bootstrap: Implemented for a uniform look across the web app, ensuring a good user experience with pre-built design patterns and components. | ||
CSS Modules: Employed to locally scope CSS by automatically creating a unique class name for each style, ensuring that our styles are consistent and do not conflict with those in other parts of the application. | ||
|
||
Backend: | ||
Java & Spring Boot: The backbone of our back-end, chosen for its powerful suite of features that simplify the development of stand-alone applications with minimal configuration. | ||
MongoDB: Our NoSQL database of choice, allowing for flexible data schema and efficient, scalable storage of application data. | ||
TimeFold AI: Integrated as the core engine for intelligent and automated scheduling, ensuring optimal allocation of resources and efficient timetabling. | ||
|
||
{{</section>}} | ||
{{<section title="Others:">}} | ||
|
||
Postman: Utilized for testing and interacting with APIs during development, ensuring that our endpoints are well-tested, robust, and ready for integration. | ||
Swagger: Used for API documentation, providing a clear, interactive interface for backe-nd services, simplifying development and integration efforts. | ||
|
||
|
||
{{</section>}} |