InnTime

InnTime #

InтTime is a project that will help students and professors save time searching for their schedules. Just go to the website, choose your group and the entire schedule will be in front of you in real time.

Link to the deployed project: InnTime Schedule

Link to the project Demo: InnTime Schedule Demo Video

Below, you can find a PDF explaining project:

    / [pdf]

Week #1 #

Team Members #

Team MemberTelegram IDEmail Address
Nikita Grigorenkon1kgrigorenkon.grigorenko@innopolis.university
Evgeny Gerasimovdzendose.gerasimov@innopolis.university
Boris ZarubinPoseidondonb.zarubin@innopolis.university
Vladimir RyabenkoVldmr11v.ryabenko@innopolis.university
Insaf Yusupovyuzsxi.yusupov@innopolis.university
Ivan Chebykindoechoni.chebykin@innopolis.university
Makar VavilovPrudensm.vavilov@innopolis.university

Value Proposition #

Identify the Problem:

  • The main problem of the existing shedule is the difficulty of finding the right schedule for a particular group. In case of many electives and subjects which students want to choose for the semester it is hard to find a propriate schedule for individual student. The bottleneck of the existing google sheets schedules is not comfortable search of the study year, main group #, electives and group of the electives.

Solution Description:

  • Our project will allow you to simply upload existing Google tables with a schedule. And make your schedule for each group, subgroup, and each selected elective. All this will be displayed on the website. And then the end user can simply select his group, electives, and groups of electives. The schedule administrators will also be able to make changes to it. For example, to change the room for a class or to change its time. However, the main difference of our tool will be the following thing: the administrator will be able to simply enter a new event in the field in any form. Our tool will understand by itself what information to get from there and where to insert it into the schedule. Secondly, the compiled schedule can be exported to Excel or Google format.

Benefits to Users:

  • Thanks to the use of our tool, the user will be able to reduce the time of searching and drawing up their schedule, especially in those semesters when electives exist. Moreover, an administrator (for example, a professor) will be able to easily make changes to the class schedule and they will be displayed in real-time. Also, many people like to make their schedules in Google or Excel format. Our solution will do it for them.

Differentiation:

  • Users should prefer our solution to others because our solution offers the ability to export schedules in Google and Excel format. And also easily make changes to the schedule without using unnecessary telegram channels or bots. However, the project itself will bring convenience to viewing the schedule at the university.

User Impact:

  • Students will be able to get their full schedule faster. And also export it in a convenient format for further editing. However, now teachers do not have to spend a lot of time searching for a specific chat to warn students about changes in the schedule. All this will be done on one site.

User Testimonials or Use Cases:

  • In our course, some people often try to make a schedule themselves so that it is more convenient to use it. Moreover, many complain that the schedule is quite inconvenient in the format presented. Therefore, we decided to make a project that will make a schedule for you. Our project will be used by students to speed up the process of finding their own schedule. We know that each student’s schedule consists of contests, as well as electives. Everyone has different groups. It’s difficult to look for your schedule every time among a large number of inconvenient tables. Teachers will also be able to use the service for more convenient work with schedule changes (classrooms, time pairs).

Lean Startup Questionnaire #

  1. Our project solves the problem of inconvenient use of the existing schedule, aiming to provide quick access to the full schedule from all courses for students. The current schedule is presented in the form of several tables, among which it is rather inconvenient to look for the schedule you need for a certain year, course, elective. The project is aimed at automating scheduling, speeding up the schedule search time for each student.
  2. The target users or customers of the InnTime project are, first of all, university students who are searching for schedules on several tables and spend their precious time on it. They may also include teachers, instructors who do not want to spend a lot of time notifying all students through groups in a telegram about a change in the schedule.
  3. InnTime can confirm and test its assumptions about the project by several methods: Conducting interviews with users and surveys of schedule compilers about the usability of our tool in order to understand their pain points and collect feedback on the proposed solution. Creating a prototype or a minimally viable product (MVP) and conducting usability tests with target users to monitor their interaction and collect information. Conducting pilot tests with a selected group of customers to verify the effectiveness of the project in solving identified problems. Collecting and analyzing data on key performance indicators (KPIs), such as time savings and customer satisfaction.
  4. The success of the project can be measured using various indicators, including: Reduce Manual Processing time: Measure the time saved by automating the schedule search from different sources and compare it with the previous manual process. Customer Satisfaction: Collect customer feedback on their experience with the software, ease of use, and overall satisfaction with the solution. Implementation and Retention Metrics: Track the number of customers using the project and track their continued usage over time.
  5. InnTime plans to iterate and pivot based on user feedback in the following ways: Regularly gather feedback from customers through surveys, user interviews, and support channels to understand their needs and pain points. Prioritize and analyze feedback to identify areas of improvement and address any issues or shortcomings in the software. Continuously release updates and new features based on customer feedback. Controlle experiments to test different approaches or variations of the software to optimize performance and user satisfaction. Stay agile and flexible in adapting the software based on user feedback, and emerging technologies to ensure the solution remains relevant and competitive.

Leveraging AI, Open-Source, and Experts #

  • AI (Artificial Intelligence): We are going to use AI to write small pieces of code that take time, but do not require mental investment.
  • Open-Source: We can use open sources for any large projects to gain knowledge about elegant solutions to problems. And also to simplify writing code (not to reinvent the wheel)
  • Experts in relevant domains: There are people in our circles who work in the areas that we will use in our project. Therefore, for additional information that can help us add some new tools to our project, we can refer to them.

Inviting Other Students #

  • We are going to survey students to clarify points regarding the usability of the current schedule. We will also ask them what they want to see in the new tool, and what are the requirements for it. And what they think is superfluous. After creating a prototype, we will invite several students to test our project. We will wait for feedback from them.

Defining the Vision for Your Project #

  • Overview: Our project provides students and instructors with a schedule that can be easily found on one site, without using multiple telegram groups, tables, and so on. The user will be able to easily specify their groups, and electives and see a ready-made schedule for him, as well as export it to Google or Excel format. Our project solves the problem of speed and ease of use of the existing schedule. You don’t have to look for a schedule in different places and open incomprehensible tables every time. Also, the schedule can be updated in real-time directly on the website, so that instructors do not have to write information somewhere in different places every time. As a benefit for users, our project provides the ability to quickly schedule in one place, as well as make changes in real-time.

  • Schematic Drawings:

  • Flow of the Project

  • Structure of the Project
  • Tech Stack For our project we choose the next list of the languages and frameworks:

    • Backend: Python
    • Frontend: HTML, CSS, JavaScript, React

    Scalability: React’s component-based architecture makes it easy to modularize the code and build reusable UI components. Because it is the main one on the market, it is supported by Facebook (which, by the way, is extremist in the territory of the Russian Federation). This is a library and it is lightweight compared to the Angular framework. A huge community around the world. React cross-platform (react native for mobile phones) JavaScript has a large ecosystem of libraries and frameworks. HTML provides a clear structure to the web pages, making it easier to maintain and update them as needed. Python has a large ecosystem of libraries and frameworks that can be leveraged to add new functionality to the application as needed.

    Performance: React’s virtual DOM allows it to efficiently update only the parts of the page that need to be changed, resulting in faster rendering times. JavaScript’s event-driven architecture allows for asynchronous processing, which can further improve performance by preventing the browser from becoming unresponsive. CSS can be optimized for better performance through techniques such as minification and compression.

    Security: React’s use of a virtual DOM can help prevent certain types of attacks, such as cross-site scripting (XSS). JavaScript has built-in security features, such as strict mode, that can help prevent common security vulnerabilities. HTML and CSS provide a clear separation of content and presentation, which can help prevent certain types of attacks, such as SQL injection. Python has a built-in set of security features, including modules for encryption, hashing, and secure socket communication. Python’s strong type checking and error handling features can help prevent common security vulnerabilities, such as SQL injection and cross-site scripting (XSS).

    Ease of development: React’s declarative programming model makes it easier to reason about your code and can lead to fewer bugs. JavaScript’s dynamic typing and flexible syntax make it easy to write and modify code quickly. HTML and CSS are easy to learn and use, and provide clear guidelines for structuring and styling web pages. Python’s large standard library and extensive third-party package ecosystem provide many pre-built tools and solutions for common problems, further accelerating development. Python’s interactive shell and support for functional programming paradigms make it well-suited for rapid prototyping and experimentation.

  • Anticipating Future Problems:

    Technical complexity: The project involves parsing multiple tables and displaying them in a unified format on a web page. Depending on the structure and formatting of the tables, this process could be quite complex. Additionally, real-time editing functionality will require careful consideration of concurrency issues. Mitigation strategy: we can break down the project into smaller, more manageable tasks and implement them incrementally. also use best practices for database design and table parsing to ensure a robust and scalable solution. And test the project early and often to identify and address any concurrency issues.

    Resource limitations: The project may require significant server resources in case of updating information and saving the schedule for each user. Mitigation strategy: we can try to develop the application using a scalable architecture that can accommodate growing user numbers over time. Also, we need to consider using cloud-based hosting services that allow scaling up or down based on demand.

    Also, it can be hard for us to parse the Excel tables into one database. In case of that, we need to read more information in this field and ask experts about it.

  • Elaborate Explanations:

    We have two main critical components in the project:

    1. Parsing tables into usable format for the database
    2. Real-time updates could lead to concurrency issues

    Core functionalities of the project:

    Table parsing: The project’s core consists of a set of algorithms that can combine the data from several tables into a single format. No matter how many tables are there, this capability enables users to examine their schedules in real-time.

    Group selection: The program gives users the option to choose their study group, thereby enhancing the user experience. This function selects the pertinent information from the parsed tables and only shows what is crucial to the chosen group.

    Selection of electives: Choosing electives for each study group is another project component. Students can select available electives for their specific degree using this function and add them to their timetable.

    Real-time editing: The program also enables users to make changes to their schedules in real-time. The database is automatically updated and stored whenever the schedule is modified. All users have easy access to current information thanks to this feature.

    Unique technologies:

    Real-time updates and real-time editing that is completely connected with data saving are two unique features of this system. Our Schedule project is the perfect option for students who want to efficiently arrange their time because it also makes it simple to filter by groups and electives.

Feedback

Value Proposition

Good, But try to think more in the use cases section, think how will your product be used and by whom?

Lean startup question

Answers are short and doesn’t reflect that you took any consideration to answer them. Redo.

Not real uses cases. Use case is how users will use your app. And by whom

AI

How will you use AI application to empower your solution?

Vision Of The Project

Very Good, but the images doesn’t appear

Overall The report is good But you need to re do the lean startup section

4/5

Feedback by Moofiy

Week #2 #

Tech Stack Selection #

As a language for writing the backend, we will use Python together with Django. We use python because it allows us to implement a fairly extensible database that is easily maintained and distributed. Also, some guys from our team have already worked with this language to write any projects, so they are familiar with certain complexities of the language and framework.

To implement the frontend, we will use a stack of HTML, CSS, JavaScript, React. The reason for their use was described in the report of the first week. We believe that their extensibility, reliability and maintainability will be enough for our project. We have two team members who have frontend skills.

For the design of the project, we will use Figma, as it is a fairly simple and intuitive tool for the design of applications or websites. Moreover, last year at the SWP course we took a short course the Figma usage in the projects.

Moreover, for controlling of a progress we will use Trello, which give us ability to make a todo list with all tasks.

Architecture Design #

Component Breakdown:

In the form of a backend, we will have a database on the server with a rest framework and an admin panel. Our project will also be located on the server. We will use Docker to deploy it.

In the form of a frontend, we will have a reaction. We also decided not to invent our own calendar, but to take a ready-made OpenSource project https://swipecalendar.io/ We will use cookies to store user information.

Through Django’s HTTP requests, we get access to the database. The front accesses the database through queries. The calendar will interact with data from the database.

Data Management:

The database will store all the information about the calendar, the user, and so on. It will be accessed via HTTP requests and the admin panel. For a more convenient operation, Postgre will be used. We will contact you through the services that will be implemented on the back.

User Interface (UI) Design:

We are ready to provide an initial version of our design. The design may change over the course of the project.

The main page When a user gets to our site, he sees this screen in front of him first of all.

Page with courses and electives Then, when the user rewind down, he gets to a page with the ability to choose his courses and electives.

The preview of the course When clicking on the course, the user is provided with a preview of the course with his personal schedule. He can view the schedule for each course like this.

The full schedule After the user adds courses to his schedule, he can go to the schedule page and see his full schedule for a certain period of time.

404 error If a 404 error occurs on the site, then this page is shown to the user.

Our design will be worked out depending on the feedback of end users and the usability of our site.

Integration and APIs:

We will use third-party APIs to access the database (Django), as well as a third-party API https://swipecalendar.io / for more convenient work with the calendar.

Scalability and Performance:

We won’t store too much data on our server. But the architecture of our project will be designed so that we can easily move to another server to improve the performance of our tool. As for extensibility. Since we will think over the entire architecture of the project, then it will be possible to embed something new into our project with ease.

Security and Privacy:

If we concern security and privacy, implementing authorization and authorization tokens provides a robust shield for the project. By leveraging these mechanisms, we can establish a fortified fortress around your system’s sensitive resources. The authorization ensures that only authenticated users with the appropriate privileges can access protected functionalities or data, effectively thwarting unauthorized access attempts. With authorization tokens, you add an extra layer of protection by securely transmitting and storing user credentials. These tokens, encrypted and signed, contain specific user permissions and expiration details, serving as digital passports to access authorized areas.

Error Handling and Resilience:

For a better terror handling, we will keep logs with errors. And also handle possible program exceptions. For greater reliability of our project, we will also use unit tests.

Deployment and DevOps:

The deployment will be due to the deployment of the docker container on the server.

Week 2 questionnaire #

  • We do not use any additional project-based books in the project.

Mentorship Support

Yes, we considered the possibility of finding a mentor. At the moment we are considering several people. An experienced mentor could help us allocate time more efficiently to complete tasks, as well as better manage tasks between the team.

Exploring Alternative Resources

Django Documentation, Yandex internship, Ozon courses on backend development, YouTube course of the React Tutorial

Identifying Knowledge Gaps

Our knowledge of Django at the moment does not allow us to sit down and write a project, but it is a convenient interface for interacting with the database, and adiministration. With the help of additional materials and documentation, we will be able to understand this framework in more detail. We also met with an expert in the field of Django and clarified several questions from him regarding working with this framework (the expert wished to remain incognito). Of the problems still, we will need to read the documentation of a third-party API for the calendar.

Engaging with the Tech Community

We had a meeting with Master-Degree students of our university Anton Antonov. We showed him the idea of our project and told him about the technology stack and the key features of our project. He gave us a couple of tips on materials that are better to use for writing. I advised using Django instead of Flask. And also suggested adding a feature to the project that will show overlays in the schedule.

Learning Objectives

Of the current tasks for us, this is to learn Django, deal with the reaction, and understand whether we will parse the schedule or make it by hand. And also to understand how to work correctly and conveniently with a third-party API for the calendar.

Sharing Knowledge with Peers

Of course, we held at least two major meetings a week to discuss issues related to the project. We have also already held a knowledge exchange meeting with each other in order to better understand who can do this or that task. However, we plan to hold at least one more meeting with the project participants so that the teammates could share their knowledge about the organization of the project, building architecture and experience at code writing.

Leveraging of AI

As a use in our project, we will do the following: small pieces of our project will be generated using one of the existing AI.

Tech Stack and Team Allocation #

  • Nikita - reports + product manager + textwriter + developer
  • Evgeny is the architecture manager of the entire project + techlead
  • Insaf - Data processing and markup specialist + tester
  • Vladimir - API development
  • Boris - Database design + devops
  • Ivan - design + development of the frontend part
  • Makar is an expert on the utilization of AI in the development process. Specialist in working with external resources

Our project will be implemented as follows:

The architecture of our project will be supported by Eugene. Data parsing, their entry into the database will be performed by Insaf. The database will work through the API, which Vladimir will work on. The database itself will be redesigned by Boris. The frontend component is written by Ivan, which will connect via HTTP requests to the backend. And Makar will help us recycle AI

Our project will be implemented as follows: The architecture of our project will be supported by Eugene. Data parsing, and their entry into the database will be performed by Insaf. The database will work through the API, which Vladimir will work on. The database itself will be redesigned by Boris. The frontend component is written by Ivan, which will connect via HTTP requests to the backend. And Makar will help us recycle AI

Report #

This week, our team made significant progress in the project, focusing on the selection of the tech stack, architecture design, and team allocation. Here is a summary of our accomplishments, challenges faced, and the steps we took to overcome them:

Accomplishments: #

Tech Stack Selection: We finalized the tech stack for our project. For the backend, we chose Python with Django due to its extensibility, maintainability, and familiarity among our team members. For the frontend, we opted for HTML, CSS, JavaScript, and React, considering their reliability and maintainability. We also decided to use Figma for design and Trello for progress tracking.

Architecture Design: We performed a comprehensive breakdown of the project components. The backend will consist of a database, a REST framework, and an admin panel, deployed using Docker. The frontend will be built with React, and we decided to integrate a ready-made open-source calendar called “swipecalendar.io” for convenience. We will use Django’s HTTP requests to access the database, while the calendar component will interact with the data.

Data Management: We determined that the database will store all calendar and user-related information. To ensure convenient operations, we will utilize PostgreSQL and communicate with the database through backend services implemented with Django.

User Interface (UI) Design: We have created an initial version of the UI design using Figma. Although the design may evolve throughout the project, we have a solid starting point.

Integration and APIs: We identified the need to utilize third-party APIs for accessing the Django database. Additionally, we will integrate the “swipecalendar.io” API to enhance the calendar functionality.

Challenges Faced and Solutions: #

Knowledge Gaps: We acknowledged that our current knowledge of Django is not sufficient to start writing the project. To address this, we plan to delve into additional materials, documentation, and leverage the expertise of an anonymous Django expert. We also anticipate the need to study the documentation of the third-party calendar API.

Mentorship Support: We recognized the value of having a mentor to guide us and optimize task allocation and time management. We are currently exploring potential mentors who can provide us with guidance throughout the project.

Engaging with the Tech Community: We encountered the challenge of finding the most relevant resources to enhance our skills. We consulted with Master’s Degree student Anton Antonov, who provided valuable tips on using Django instead of Flask and suggested adding overlay features to the project. We will explore these recommendations further.

Lessons Learned: #

Effective Team Collaboration: Holding regular meetings and knowledge exchange sessions proved crucial for effective collaboration among team members. These interactions facilitated a better understanding of each member’s strengths, project organization, and architecture.

Resource Exploration: Exploring alternative resources beyond the core project requirements, such as Django documentation, Yandex internships, Ozon courses, and YouTube tutorials, can provide valuable insights and knowledge for the team.

Continuous Learning: Adapting to new technologies and frameworks, such as Django and React, requires continuous learning and the willingness to explore additional materials and external expertise.

Team Allocation: #

To ensure the smooth execution of the project, we allocated specific roles and responsibilities within our team

Learning Objectives: Our immediate tasks include learning Django, understanding React, and determining whether to parse the schedule or create it manually. We will also focus on effectively working with the third-party calendar API.

Sharing Knowledge with Peers: We plan to organize a meeting with all project participants to foster knowledge sharing regarding project organization, architecture, and coding experiences.

Leveraging AI: We intend to utilize AI for generating small components of our project, leveraging the expertise of Makar, who specializes in working with external resources.

Overall, we are satisfied with our progress during the second week, and we look forward to further advancements in the upcoming weeks.

Team Collaboration and Meetings: #

Our team understands the importance of effective collaboration and communication to ensure the success of the project. Throughout the second week, we engaged in regular meetings and discussions to align our goals, exchange knowledge, and make informed decisions. Here are the details of our team collaboration:

Meeting Frequency: We held at least two major meetings each week to discuss project-related matters. These meetings allowed us to synchronize our progress, address any challenges or questions, and plan the next steps.

Meeting Format: Our meetings were conducted both in-person and virtually, depending on the availability and location of team members. We utilized collaboration tools like video conferencing platforms to facilitate virtual meetings.

Agenda and Topics: Each meeting had a pre-determined agenda to ensure a structured and productive discussion. The topics covered various aspects of the project, including:

Progress updates: Each team member shared their accomplishments, challenges, and any assistance required. Task allocation: We discussed the distribution of tasks and responsibilities based on individual strengths and expertise. Technical discussions: We deliberated on the technical aspects of the project, such as the selection of the tech stack, architecture design, and integration with third-party APIs. Knowledge sharing: We encouraged team members to share their learnings, insights, and resources related to the project, which fostered a collaborative learning environment. Problem-solving: We collectively addressed any challenges or roadblocks encountered during the week, brainstorming solutions and seeking input from team members with relevant expertise. Communication Channels: In addition to our regular meetings, we maintained constant communication through various channels. We utilized instant messaging platforms, such as Slack, to exchange quick updates, seek clarifications, and share relevant resources. This ensured that our team remained connected and could promptly address any urgent matters.

Collaborative Decision Making: Decisions related to the project were made through a collaborative process. We encouraged open discussions, actively listened to each other’s viewpoints, and considered the expertise and insights of team members. This collaborative decision-making approach helped us in selecting the tech stack, architecture design, and other key aspects of the project.

By fostering a culture of open communication, knowledge sharing, and collaborative decision-making, our team maximized the collective expertise and ensured that everyone was aligned towards achieving our project goals.

Feedback

1. Component Breakdown Good

Missing 2. Data Management

Good

3. UI Design Good

4. Integration and APIs Good

5. Scalability and Performance

Good

6. Security and Privacy Good

7. Error handling and Resillience Good

8. Deployment and DevOps

Good

Answering questioner Good

Overall The report is good. I can see that you re putting efforts to it. I loved the design. Looking forward to see results

Grade 5/5

Feedback by Moofiy

Week #3 #

Weekly Progress Report #

The team entered the schedule data into our project system and was able to work with them. We can display all schedules on our website page and show the general schedule for the selected courses and electives.

We talked to several students of Innopolis University to get information about what kind of schedule they would like to see on their website. This feedback will be able to contribute to the better development of our project.

We tested the work of our prototype by adding several user data. And also through the work of FakeAPI.

Prototype Features #

This week we wrote the backend and frontend part of our prototype.

As for the frontend, we have implemented several key functions of our tool:

  1. The ability to choose between core courses or electives
  2. The ability to add courses and electives to the calendar on our website by clicking on the “plus” button
  3. The ability to view the schedule in the calendar in the form of a sheet or calendar format
  4. The calendar is displayed by using fullcalendar.io
  5. fakeapi is also written to test the work of a part of the frontend
  6. Dynamic schedule display
  7. The code is written using React components and hooks such as useState, useEffect, and even implementing our own hook useFetching
  8. TypeScript allows us to use own types to create objects and components and handle errors (e.g. if some of attributes of type could not exist)

As for the backend, we have implemented following key functions:

  1. The ability to save data of users in a convenient format
  2. The usage of admin panel
  3. Rest API

User Interface #

img_1.png

When visiting our site, the user sees the home screen in front of him, on which he can click on one of three buttons (Login to the account, adding events to the calendar, viewing the calendar)

When scrolling down the page, the user can choose which courses he wants to see in calendar (core courses or electives). After displaying the list of courses, the user can click on the sign of adding the course to the calendar and scrolling down will be able to find it in the calendar. As new courses are added by clicking the “plus” button, the calendar will be updated. The user can choose the format of the calendar display (list, calendar or schedule for a specific day)

Challenges and Solutions #

At first, we thought to use https://swipecalendar.io/ to display the calendar on our website, but as it turned out in the end, this thecnologie was paid for. After studying the information a little, we found a new API for the calendar https://fullcalendar.io/

Also we met collision of different CSS files thats why we use regular CSS file for global styles and CSS modules for separate components to prevent collision.

Next Steps #

As tasks for the future, we have identified the following:

  1. Add the ability to search and sorting cources

  2. We also need to check the correctness of the work of the bundle of our backend with the front end.

  3. The ability to save the schedule to a computer or phone for use in Google Calendar or other services.

  4. We need to implement a user authorization page (so that the cookie can be saved for each user)

  5. Writing a parser for the schedule, so as not to make the schedule with your hands in our service

  6. The ability to edit the schedule through the admin panel for teachers

  7. Different styles for different cources in the calendar


Summing up the past week results: it was a productive implementation week. Unfortunately, we can’t say we managed to do everything we wanted. But this shows us that we need to pay more attention to the correct distribution and evaluation of tasks.

Nevertheless, the work on the prototype was done, and all critical points were checked. Now we need to focus our attention on finding out the possible problems of our project. And the implementation of the functionality that is specified in the paragraph

Feedback

Prototype Features
Very good. I would advice you to name the feature in order to be able to track it. And give more description for it though User stories

User Interface
AMAZING!!!

Challenges and Solutions
Very good

Next Steps
Very good

Overall
Good report, you should focus more on finalising the project and make it perfect. Since your project is stable some how.

Grade
5/5

Feedback by Moofiy

Week #4 #

Weekly Progress Report #

This progress report highlights the key developments and insights gained during the week in three main areas: external feedback, testing, and iteration. These aspects have played a crucial role in shaping our project and moving it closer to its final form. We conduct several meetings with a whole team to discuss a current state of the project and get a feedback from each teammate.


External Feedback #

During this week, we focused on gathering external feedback to gain valuable insights into the usability, functionality, and overall satisfaction of our project. Recognizing the importance of user acceptance testing (UAT), we engaged with a group of individuals from our community, including fellow students and friends, who agreed to provide us with honest feedback.

One particularly enlightening feedback session stood out. We conducted an interactive demonstration of our project, showcasing its features and functionality. The participants expressed their enthusiasm for the centralized schedule platform, highlighting the convenience it offered in eliminating the need for multiple platforms and tables. They appreciated the ease of specifying groups and electives and praised the ability to export schedules to popular formats like Google Calendar.

However, during the feedback session, we also received constructive criticism regarding the user interface (UI) design and certain aspects of the user experience (UX). This feedback allowed us to identify areas for improvement, such as streamlining the navigation flow and enhancing the visual aesthetics. It served as a valuable basis for refining our project and ensured that we were aligning it with the expectations and needs of our target audience.

Testing and Narrowing the Scope #

Testing played a significant role this week in evaluating the effectiveness and reliability of our project. We focused on testing our backend, built with Flask and PostgreSQL, to ensure seamless integration and efficient data management.

Through rigorous testing, we identified certain areas that required improvement. We encountered performance issues during high traffic periods, which impacted the responsiveness of the website. To address this, we optimized our database queries and fine-tuned the server configuration. Additionally, we implemented caching mechanisms to enhance the overall speed and scalability of the system.

Moreover, we discovered some minor bugs and inconsistencies in the data synchronization process between the website and the real-time updates. By thoroughly testing and identifying these issues, we were able to rectify them promptly, ensuring a smoother experience for both students and instructors.

Iteration and Refinement #

Iteration remained at the forefront of our development process this week. We continuously evaluated our project’s progress, comparing it against our initial goals and objectives. The feedback received from external sources, along with the insights gained from testing, played a pivotal role in refining our design, features, and functionalities.

To address the feedback regarding the UI design, we initiated a thorough review and made some minor but important improvements. We worked on enhancing the visual appeal by refining search and sorting algorithms, and different colors for events of different cources and electives. We also incorporated new features, such as changable buttons, allowing users to see which cources and electives they already add.

img_1.png

In addition to visual enhancements, we iterated on the user flow based on user feedback, ensuring a more intuitive and seamless navigation experience. We simplified the process of specifying groups and electives, minimizing user effort and increasing the efficiency of schedule generation.

Furthermore, we dedicated time to optimize the backend. We have discussed the format of data storage in the database. Based on the meeting, we were able to make some changes to the database for more convenient storage of data. We also discussed the work of the API part and made edits to the API functions for more convenient communication with the frontend part. Among the innovations, it became possible to add teachers and the type of classes in the table, the ability to update user data, and support for CORS.

Next, you can see the format of the backend admin panel and the ability to edit the course

Also we have introduced JWT token to save user settings such as cources and electives after logging or registration.

By adopting an iterative approach, we have successfully eliminated several early-stage mistakes and made significant progress towards achieving our project’s objectives.


In conclusion, this week’s progress report emphasizes the importance of external feedback, testing, and iteration in shaping our project. We actively sought feedback from our target audience, refining our project based on their insights. Thorough testing allowed us to identify and address issues, ensuring a robust and reliable backend. Additionally, through iterative refinement, we enhanced the frontend design, added new features, and improved the overall user experience. As we move forward, we remain committed to continuous evaluation, adjustment, and refinement to deliver a high-quality, user-centric solution.

Feedback

External Feedback
Good, you did feedback? Is there any proof to what you said? You should have showed the feedback here.

Since in the report you didn’t show any real feedback form real users. It hard to say wether you are making changes by yourself or based on a feedback.

Testing
Ok you you made testing, where is the proof?

Please show proof of what you are saying that you were doing. Because words without evidence is just words.

Through rigorous testing?

What kind of testing did you do? Uni testing, System testing, Usability testing?

How did you mange reporting / fixing bugs? How did you make sure it was fixed?

You didn’t show any of this in the report.

Iteration

Good iterate plan

Overall
The report is ok. your report doesn’t reflect your work. I Think you should spent more time reflecting / writing the report.

Grade: 3/5

Feedback by Moofiy

Week #5 #

Weekly Progress Report #

Throughout the week, our primary focus was on improving our product. To gain a deeper understanding of the necessary fixes and changes, we conducted feedback sessions and performed thorough testing. As we near the final stages of development, we are committed to investing maximum effort in collecting feedback and enhancing our product.

Feedback Collection #

The feedback collection process involved two meetings with students from Innopolis University. We provided them with a glimpse of our product during these sessions, followed by the opportunity to share their thoughts through a Google form. The feedback we received over the past week provides valuable insights that we would like to share.

Next, we will show you the feedback that we managed to collect over the past week

For the first two questions, we can notice that most students look at their schedule at least several times a week. And it takes them 1 to 5 minutes, which is quite long for just viewing the schedule.
On the following two issues, we can notice that using a regular schedule in the form of tables located in different places is very inconvenient. And people want to see an alternative way that will really be effective and convenient.
Further, we see that most of all people would like to be able to view the schedule in one place. The second in a row is the possibility of updating this schedule by adding new courses or electives. And also, based on our feedback, many who voted would really like to use our site.
The ease of use of our product is high, which we consider to be a fairly strong plus of our product. And also, judging by the feedback, we see that the main features of our site can be called viewing the schedule in one place, as well as the convenience of adding new courses and electives. Another feature is the export of the entire compiled schedule in Google format
In terms of what is missing on our website, we can highlight the following main things: we need to redo the design in some places, finish the design so that a mobile version of our product appears. And also a few of those who voted would like to see authentication through the Innopolis account.
In general, those who voted are satisfied with our product.

Also at the end we inserted a question related to NPS. Scores of 1-6: Detractors - Users who are unhappy and may actively discourage others from using the project. Scores of 7-8: Passives - Users who are somewhat satisfied but could be easily swayed by competition. Scores of 9-10: Promoters - Users who are highly satisfied and likely to recommend the project to others.

Net Promoter Score for out project is 45%. And to give you some context, the average score across all companies is 43%.

In conclusion, the feedback collected during the week provided valuable insights and highlighted the areas where our product excels as well as the aspects that require further attention. We are committed to addressing the concerns raised, including optimizing the schedule viewing process, redesigning certain elements, developing a mobile version, and exploring authentication options. The positive NPS score indicates that our project has made a favorable impression on users and holds potential for further success. We will try to take into account most of the feedback comments and fix all the problems.

Testing Continue… #

This week we continued testing our product. We used unit tests for the backend and frontend, as well as manual testing of some components.

Tests for Fronted part before improving

We use unit tests. For example, in the output image of the tests, you can notice that the 13th and 15th tests were not executed, which is responsible for displaying messages that the schedule cards were not found or something was not loaded from the backend. After testing, we corrected these points.

Tests for Fronted part after improving

Tests for Backend part

test_users.py is testing the correct development of the authorization system, including registration and user login. As well as updating the user’s group and changing his password.

The remaining tests test the correct use of getters and getting information from the database.

Problems of this week #

This week we ran into a problem on the frontend side. We decided to add state manager MobX for ease of use in code, and specifically for creating contexts: user (for registration and login), card (for selecting a group or an item, filtering it, adding it to favorites), event (for displaying events on the calendar). But the lack of experience with this technology affected the system failure. After some time we solved this problem with the help of a tutor.


At the end of this week, we can say that we held useful feedback sessions and received useful comments that relate to our project. We will take into account all the comments and try to implement them (we have already corrected some of the comments) Also, thanks to another test, we identified some problems related to the frontline, which we promptly eliminated. We are ready for the last week of the project, we will be happy to present it. This week we need to completely double-check everything and make sure that everything works as we intended.

Feedback

Collecting and documenting feedback
good!

Feedback analysis
good!

Roadmap and enhancement
good!

Grade: 5/5

Feedback by Moofiy