Week1

Capstone Project. Report 1 #

Authors #

| Name | Email | Telegram Alias |

| ——– | ——– | ——– |

| Mikhail Zimin | m.zimin@innopolis.university | @frogycat |

| Nikita Shlyakhtin | n.shlyakhtin@innopolis.university | @NikitaShlyakhtin |

| Adel Shagaliev | a.shagaliev@innopolis.university | @G3nD4

| Lev Ryskildin | l.ryskildin@innopolis.university | @LevRysk |

| Daria Shibkova" | d.shibkova@innopolis.university | @s_dory_s |

Value Proposition #

Identify the Problem #

Students face problems with organizing study materials such as lectures & tutorial notes, cheat sheets and final preparation notes. Materials are distributed among multiple telegram channels, which sometimes makes finding useful materials hard and requiring additional help from other students.

Solution Description #

Development of a mobile application with the content that would be managed by students: they could upload all useful materials such as cheatsheets, lecture & tutorial notes, exam preparation. These materials are to be grouped by courses.

Benefits to Users #

Students would have access to a complete collection of all study materials that are useful for each course in one application, so none of them could be lost.

Differentiation #

Organization oriented open-source product that could be used within certain organizations such as universities, schools and online-courses.

User Impact #

The development of this mobile application for organizing study materials will significantly enhance the academic experience for students. By providing a centralized platform where students can upload, access, and manage their study-related content—including lecture notes, tutorials, cheatsheets, videos, and summaries—this application addresses the common problem of fragmented and misplaced study resources.

User Testimonials or Use Cases: #

Catching Up on Missed Lectures #

A student had to miss a crucial lecture due to a family emergency. He opened the app and found a recording of the lecture uploaded by a classmate, along with comprehensive notes and a summary. By reviewing these materials, this student was able to catch up on what he missed and participate in subsequent discussions as if he had attended the class.

Collaborative Exam Preparation #

A study group students used the app to compile their individual notes, cheatsheets, and past tutorials. They created a shared folder for their course, which included each member’s summaries and additional resources. This collective repository provided a holistic view of the course material, leading to more effective group study sessions and higher exam scores.

Material review #

Students from the whole course collected all notes in the course directory. So now, before the exam, they could revise all materials they uploaded during the semester. Since they all contributed to this “knowledge library”, they could remember each small detail from the course and successfully pass the exam.

Lean Questionnaire #

What problem or need does your software project address? #

Disorganization #

Students often struggle with organizing and keeping track of various materials related to their courses such as lecture notes, presentations, and summaries. This can lead to frustration and inefficiency in studying and preparing for exams.

Collaboration #

In a traditional setting, sharing notes or resources among peers can be cumbersome. The mobile application provides a platform for students to easily collaborate and share valuable materials with their classmates.

Accessibility #

Having all course materials in one centralized location on a mobile device makes it more convenient for students to access and study anytime, anywhere. This addresses the issue of carrying around physical notebooks or folders.

Efficiency #

By providing a platform for students to upload and organize materials by courses, the application helps streamline the studying process and allows students to quickly find the information they need.

Who are your target users or customers? #

The target audience for this project comprises organizations.

These entities will host our application and facilitate access to it for their students or employees. In turn, the students or employees will oversee content management within this designated hosted version.

How will you validate and test your assumptions about the project? #

A/B Testing #

If applicable, conduct A/B testing to compare different versions of a product or feature to see which performs better. This can help validate assumptions about user behavior and preferences.

Pilot Testing #

Conduct a pilot test of the project in a real-world setting to assess its performance and gather feedback from actual users.

Surveys and Interviews #

Create surveys and conduct interviews with potential customers to gather feedback. This can help validate assumptions about customer needs and preferences.

What metrics will you use to measure the success of your project? #

Number of active users #

Measure the total number of unique users actively using the app over a specific period.

Session duration #

Monitor the average time users spend interacting with the app in a single session.

Frequency of app usage #

Track how often users access the app within a given timeframe.

App crashes #

Track the frequency of app crashes and work on reducing them.

Number of materials uploaded: Measure the volume of lecture records, presentations, and student summaries being uploaded by users.

How do you plan to iterate and pivot if necessary based on user feedback? #

Every week, our team will gather feedback and analyze statistics from our valued clients to determine the necessary enhancements our application requires.

Leveraging AI, Open-Source, and Experts #

AI Integration #

We propose adding an AI-powered text enhancement feature to the note creation/editing window. This will include an “Improve Note with AI” toggle button next to the “Save” button. When users input text, they can activate this toggle to pass their text through a GPT-based model.

The improved text will automatically replace the user’s input in the editor. However, if the toggle is deactivated, the original text will be restored. This allows users to regenerate text variants while preserving the initial draft. For instance, an unstructured text can be enhanced by breaking it into paragraphs, adding bullet points, punctuation, and other improvements for readability.

###Open-Source and Expert Contributions The project is going to be an OpenSource project so everyone could contribute to our project. Experts will be engaged situationally, as needed, to provide guidance, offer assistance, and give feedback on various aspects of the project. This flexible approach ensures that we can leverage specialized knowledge and skills without making a formal commitment at the outset.

Defining the Vision for Your Project #

Overview: #

The vision for our mobile application is to create an all-encompassing educational platform that transforms the way students manage and engage with their study materials. This project aims to provide students with a centralized, user-friendly solution that integrates essential academic resources in a single, easily accessible space. Our goal is to enhance students’ learning experiences by reducing the fragmentation and disorganization of study materials, enabling more effective study practices, and promoting collaborative learning.

For the Minimum Viable Product (MVP), we have delineated an initial set of core features designed to address the crucial needs of our user base. These features include:

Course Creation: This functionality will enable students and educators to generate and that would contain all course materials in the future. Online Editing: This feature will provide users with tools for creating, editing, and managing textual content directly within the application. Text Notes Uploading: Users will be able to upload edited text to the course materials so all students could see it.

IPs and Distribution Rights #

Our project will include a robust authentication system to ensure that each student can only access the study materials of their respective university. This will not only enhance security but also ensure that the content remains relevant and specific to each educational institution.

Tech Stack: #

For our Capstone project, we decided on the following technology stack: Flutter, Go, gRPC, PostgreSQL, and Docker. In this section, we will elaborate on our choices and explain why these technologies are the most optimal for achieving the goals of our project.

Frontend: Flutter #

We considered several options for implementing the frontend part of our project, including Kotlin and Swift, but ultimately chose Flutter. The main reasons for this choice are its cross-platform capabilities and a more straightforward, intuitive approach to creating user interfaces. Flutter allows us to develop applications for both iOS and Android simultaneously, significantly reducing development time and resources. Additionally, its rich library of widgets and active developer community make Flutter an ideal choice for rapid prototyping and functional implementation.

Backend: Go #

For implementing the server-side logic, we chose the Go programming language instead of alternatives like Python. High performance and stability are critical for our project. Go offers concurrency and more efficient resource management, allowing us to ensure fast request processing and system stability under load. Moreover, Go compiles to statically typed machine code, reducing the likelihood of runtime errors and increasing overall backend reliability.

gRPC #

For interaction between system components, we chose gRPC. This protocol allows us to ensure high performance and reliable data transmission between client and server. Unlike traditional REST APIs, gRPC uses HTTP/2 and Protocol Buffers, offering more efficient data compression and lower latency. This is particularly crucial for our project, which requires handling large volumes of data with minimal delay.

Database: PostgreSQL #

We opted for PostgreSQL as our database management system. It is known for its high reliability, scalability, and adherence to SQL standards, making it an excellent choice for our project. PostgreSQL supports complex queries and transactions, essential for implementing sophisticated business logic and data analytics.

Containerization: Docker #

To simplify the deployment and management of our application, we use Docker. Containerization allows us to ensure environment and dependency isolation, making the deployment process more predictable and repeatable. Docker also makes scaling and managing different versions of our application significantly easier.

Containerization: Overall #

In conclusion, the choice of technology stack was based on the need to ensure high performance, reliability, and hassle-free development and deployment processes. We believe that the selected technologies will enable us to successfully execute the project and achieve our goals.

Challenges and Solutions #

  1. Report Writing: We faced a challenge in determining the appropriate length and detail for our reports. It was unclear whether the reports should be brief and technical or detailed and include the emotional aspects of the project.

    Solution: We decided to make the reports concise yet clear and easily understandable, ensuring they cover both technical details and the emotional narrative of our project.

  2. Prototype Design: Another challenge was deciding how simple or detailed the prototype design should be at different stages of development.

    Solution: Initially, we will focus on creating a robust framework with a strong emphasis on architecture. The design will be refined and enhanced incrementally.

  3. Skill Refreshment: Team members needed to recall and refresh certain skills required for the project.

Next Steps #

· Define and document the application architecture · Begin designing the initial user interface · Set clear goals for the upcoming weeks · Start backend development