From 5bafc610fdf52daa9674fa277855986244311eb7 Mon Sep 17 00:00:00 2001 From: scruffyscarf <114242238+scruffyscarf@users.noreply.github.com> Date: Sun, 8 Jun 2025 00:28:43 +0300 Subject: [PATCH 01/17] Create _index.md --- content/docs/2025/Smartify/_index.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 content/docs/2025/Smartify/_index.md diff --git a/content/docs/2025/Smartify/_index.md b/content/docs/2025/Smartify/_index.md new file mode 100644 index 000000000..7e99b5195 --- /dev/null +++ b/content/docs/2025/Smartify/_index.md @@ -0,0 +1,4 @@ +--- +bookCollapseSection: true +title: "Smartify" +--- From ece3cca646489f769286a7ba6eb72d0f30da6c89 Mon Sep 17 00:00:00 2001 From: scruffyscarf <114242238+scruffyscarf@users.noreply.github.com> Date: Wed, 11 Jun 2025 12:16:37 +0300 Subject: [PATCH 02/17] Create week1.md --- content/docs/2025/Smartify/week1.md | 187 ++++++++++++++++++++++++++++ 1 file changed, 187 insertions(+) create mode 100644 content/docs/2025/Smartify/week1.md diff --git a/content/docs/2025/Smartify/week1.md b/content/docs/2025/Smartify/week1.md new file mode 100644 index 000000000..76179003d --- /dev/null +++ b/content/docs/2025/Smartify/week1.md @@ -0,0 +1,187 @@ +--- +title: "Week #1" +--- + +# Week #1 + +## Project description + +### Project name: Smartify + +**Code repository**: https://github.com/IU-Capstone-Project-2025/Smartify + +### Problem Statement: + +Russian schoolchildren in grades 9-11 face a number of difficulties in planning their educational and professional path: + +- Disparate services: career guidance, university selection, preparation for the Unified State Exam and the search for tutors — all on different platforms. +- Generalized tips: recommendations without taking into account the interests, strengths, and goals of a particular student. +- Difficulties in preparation: it is unclear which subjects to take, how much to study, where to seek help. +- Unavailability of quality support: it is difficult to find understandable and free resources. + +### Project description: + +Smartify - an all-in-one educational platform that helps Russian high school students (grades 9–11) navigate their career path, choose the right university, prepare for the Unified State Exam (ЕГЭ), and find suitable tutors. +The key feature is AI-based personalized recommendations that make the journey clear and accessible for every student. + +Key Advantages + +- **All-in-one solution** — no need to juggle multiple websites and tools +- **Personalized guidance** — specific career suggestions, not just general directions +- **Accessible and clear** — recommendations based on student interests, scores, and goals + +Career Guidance Module + +- Interactive questionnaire covering interests, school performance, and hobbies +- AI-powered analysis suggests **specific careers** (e.g., _pediatric surgeon_ instead of just _medic_) +- Shows required subjects for admission right away +- Includes reasoning behind the career choice to help students understand the fit + +University Selection Module + +- Filter universities by region, tuition (budget/paid), and field of study +- Compare universities by: + - Entrance scores + - Education costs + - National rankings + +Exam Preparation Module + +- Based on the chosen career and university, recommends: + - Required subjects + - Weekly study plan (hours per subject) +- Built-in mini-tests to assess current knowledge +- Progress tracker to monitor preparation + +Tutors & Mentors Module + +- Find tutors using flexible filters: + - Subject + - Teaching style (e.g., friendly, strict, structured) +- Browse detailed tutor profiles, including: + - Background and experience + - University they attended + +### **Team Members** + +| Team Member | Telegram Alias | Email Address | Track | Responsibilities | +|-----------------------------------------|------------------|-----------------|---------------------------------------------|--------------------| +| Andruwenko Valery | @valery2005and | v.andruwenko@innopolis.university | ML developer | ML models, | +| Chugaeva Mariia | @mariiachugaeva | m.chugaeva@innopolis.university | ML developer | ML models, | +| Basanov Maxim | @scruffyscarf | m.basanov@innopolis.university | Project Manager | Team coordination, Documentation responsible | +| Kuchukbaeva Regina | The Grand Architecton | r.kuchukbaeva@innopolis.university | Frontend developer, Designer | Figma design, | +| Zakirov Karim | @karimzakirov | k.zakirov@innopolis.university | Frontend developer | [Responsibilities] | +| Mayorov Daniil | @Daniil20xx | d.mayorov@innopolis.university | Backend developer | [Responsibilities] | +| Antipov Alexey | @Aleksey_Antipov1725 | a.antipov@innopolis.university | Backend developer | [Responsibilities] | + + +## Brainstorming + +### Ideas during brainstorming + +1. Smartify - an all-in-one educational platform that helps Russian high school students (grades 9–11) navigate their career path, choose the right university, prepare for the Unified State Exam (ЕГЭ), and find suitable tutors. +2. Skill Development Planner - the user enters the desired goal (for example, to become a frontend developer), and receives a plan of courses, books, and projects with progress tracking. +3. Training in household skills - a learning about "life" in an interactive form: from taxes and cooking to renting a home. Courses from real people with interactive tasks and tests. + +### Brief market research / problem validation + +1. Yandex.Textbook — a platform for a preparation to Unified State Exam in computer science. It offers tasks and a built‑in AI-assistant to explain solutions to computer science problems. + +Pros: +- A real AI assistant for specific tasks. +- Free access and support the probes. + +Cons: +- Limited to computer science — there is no career or university direction. +- There is no comprehensive personalization for a profile or university. + +2. Roadmap.sh - a platform for a development plan with detailed roadmaps for a variety of IT areas. + +Pros: +- Detailed roadmaps for a variety of IT areas (frontend, backend, DevOps, etc.) +- Visual development schemes + +Cons: +- There is no progress tracking +- There is no personalization for the current level of knowledge + +## Basic requirements + +### Target users and their primary needs + +1. High School Students +- To understand which profession is suitable for them, taking into account their interests, grades and inclinations +- Get specific admission recommendations (what to take, where to enroll) +- Prepare for the Unified State Exam efficiently and according to plan +- Find trusted tutors or mentors + +2. Parents of High Schoolers + +- To help a child choose a future profession +- Monitor progress in preparation for the Unified State Exam +- Find affordable and high-quality educational resources or tutors + +3. Tutors and Mentors + +- Find interested students +- Get a platform to promote your services +- Adjust the filtering to suit your teaching style and subject + +### User stories + +1. As a high school student, I want to take a career orientation quiz, so that I can understand which profession fits me best. + +2. As a student with a limited budget, I want to filter universities by location, tuition, and entrance scores, so that I can apply where I have the best chances. + +3. As a student preparing for exams, I want to get a study plan and take mini-quizzes, so that I can track my progress and focus on weak areas. + +4. As a student struggling with a some subject, I want to find a tutor whose teaching style fits me, so that learning becomes easier and more effective. + +5. As a tutor, I want to create a profile with my experience, subjects, and availability, so that students can easily find and contact me. + +### Initial scope + +*...* + +## Tech-stack + +1. ML - Python, sklearn, pandas, matplotlib + - Python + sklearn for fast development and training of ML models. + - pandas for working with data. + - matplotlib for visualization. + +2. Frontend - Flutter + - Flutter for a development the app due to its cross-platform nature, which allows us to create apps for iOS and Android with a single codebase. Flutter provides high performance and smooth interface, as well as offers design flexibility through a variety of widgets. + +3. Backend - Python, Go, MongoDB, PostgreSQL + - Python for the server side of the code, as it is optimal for working with databases and ML models. He also already has experience working with various protocols, databases and ML, gained in the 2nd year of the 2nd semester. + - Go for the user-side backend because it is integrated with flutter. + - MongoDB for storing information about universities, professions, and tests + - Postgresql for storing user information because it is optimal for working with vectors + +4. Design - Figma + - Figma for easy and convenient operation with each component of design + +# Weekly commitments + +## Individual contribution of each participant + +**Andruwenko Valery** – + +**Chugaeva Mariia** – + +**Basanov Maxim** – + +**Kuchukbaeva Regina** – + +**Zakirov Karim** – + +**Mayorov Daniil** - + +**Antipov Alexey** - + +## Confirmation of the code's operability + +We confirm that the code in the main branch: +- [+] In working condition. +- [+] Run via docker-compose (or another alternative described in the `README.md`). From 906b7de75af7a8c430c1899ca65398ff05ebb041 Mon Sep 17 00:00:00 2001 From: scruffyscarf <114242238+scruffyscarf@users.noreply.github.com> Date: Wed, 11 Jun 2025 13:26:17 +0300 Subject: [PATCH 03/17] Update week1.md --- content/docs/2025/Smartify/week1.md | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/content/docs/2025/Smartify/week1.md b/content/docs/2025/Smartify/week1.md index 76179003d..5863d8f4c 100644 --- a/content/docs/2025/Smartify/week1.md +++ b/content/docs/2025/Smartify/week1.md @@ -66,13 +66,13 @@ Tutors & Mentors Module | Team Member | Telegram Alias | Email Address | Track | Responsibilities | |-----------------------------------------|------------------|-----------------|---------------------------------------------|--------------------| -| Andruwenko Valery | @valery2005and | v.andruwenko@innopolis.university | ML developer | ML models, | -| Chugaeva Mariia | @mariiachugaeva | m.chugaeva@innopolis.university | ML developer | ML models, | +| Andruwenko Valery | @valery2005and | v.andruwenko@innopolis.university | ML developer, Data Analytic | ML models, Data Collection | +| Chugaeva Mariia | @mariiachugaeva | m.chugaeva@innopolis.university | Frontend developer, Data Analytic | App development, Data Collection | +| Zakirov Karim | @karimzakirov | k.zakirov@innopolis.university | Frontend developer | App development | +| Mayorov Daniil | @Daniil20xx | d.mayorov@innopolis.university | Backend developer | Database interactions, Backend Development | +| Antipov Alexey | @Aleksey_Antipov1725 | a.antipov@innopolis.university | Backend developer | Database interactions, Backend Development | | Basanov Maxim | @scruffyscarf | m.basanov@innopolis.university | Project Manager | Team coordination, Documentation responsible | -| Kuchukbaeva Regina | The Grand Architecton | r.kuchukbaeva@innopolis.university | Frontend developer, Designer | Figma design, | -| Zakirov Karim | @karimzakirov | k.zakirov@innopolis.university | Frontend developer | [Responsibilities] | -| Mayorov Daniil | @Daniil20xx | d.mayorov@innopolis.university | Backend developer | [Responsibilities] | -| Antipov Alexey | @Aleksey_Antipov1725 | a.antipov@innopolis.university | Backend developer | [Responsibilities] | +| Kuchukbaeva Regina | The Grand Architecton | r.kuchukbaeva@innopolis.university | UX/UI-Designer | Figma design | ## Brainstorming @@ -162,23 +162,27 @@ Cons: 4. Design - Figma - Figma for easy and convenient operation with each component of design +## *Something else you want to add* + +Here is our Figma table with all future implementation - https://www.figma.com/design/kw2m1A0ArR9Tb4Obcb2FPx/Smartify?node-id=30-8511 + # Weekly commitments ## Individual contribution of each participant **Andruwenko Valery** – -**Chugaeva Mariia** – +**Chugaeva Mariia** – Logo app implementation and data base of university collection + +**Zakirov Karim** – The first page, which is displayed when the user log in to the system, implements a basic interface with a welcome message, registration page with a user data entry form -**Basanov Maxim** – +**Mayorov Daniil** and **Antipov Alexey** - discussed how the architecture of the project will look in general, thought about which protocols to use to communicate between different parts of the project - created a picture of architecture. discussed the structure of the project - was created a new branch with folder structure -**Kuchukbaeva Regina** – +**Basanov Maxim** – Establishing communication between each participants, emerging problem solving, GitHub maintaining -**Zakirov Karim** – +**Kuchukbaeva Regina** – Basic view of app implementation: drawed sign up, log in, password validation and forgot password algorithms -**Mayorov Daniil** - -**Antipov Alexey** - ## Confirmation of the code's operability From d97aa7ecaa0922509b26951b078e8adbaf8b12f4 Mon Sep 17 00:00:00 2001 From: scruffyscarf <114242238+scruffyscarf@users.noreply.github.com> Date: Wed, 11 Jun 2025 14:56:07 +0300 Subject: [PATCH 04/17] Update week1.md --- content/docs/2025/Smartify/week1.md | 68 +++++++++++++++++++++++------ 1 file changed, 54 insertions(+), 14 deletions(-) diff --git a/content/docs/2025/Smartify/week1.md b/content/docs/2025/Smartify/week1.md index 5863d8f4c..21e5e9a3f 100644 --- a/content/docs/2025/Smartify/week1.md +++ b/content/docs/2025/Smartify/week1.md @@ -66,14 +66,13 @@ Tutors & Mentors Module | Team Member | Telegram Alias | Email Address | Track | Responsibilities | |-----------------------------------------|------------------|-----------------|---------------------------------------------|--------------------| -| Andruwenko Valery | @valery2005and | v.andruwenko@innopolis.university | ML developer, Data Analytic | ML models, Data Collection | -| Chugaeva Mariia | @mariiachugaeva | m.chugaeva@innopolis.university | Frontend developer, Data Analytic | App development, Data Collection | +| Andruwenko Valery | @valery2005and | v.andruwenko@innopolis.university | ML developer, Data Analytic | ML models, Data collection | +| Chugaeva Mariia | @mariiachugaeva | m.chugaeva@innopolis.university | Frontend developer, Data Analytic | App development, Data collection | | Zakirov Karim | @karimzakirov | k.zakirov@innopolis.university | Frontend developer | App development | -| Mayorov Daniil | @Daniil20xx | d.mayorov@innopolis.university | Backend developer | Database interactions, Backend Development | -| Antipov Alexey | @Aleksey_Antipov1725 | a.antipov@innopolis.university | Backend developer | Database interactions, Backend Development | -| Basanov Maxim | @scruffyscarf | m.basanov@innopolis.university | Project Manager | Team coordination, Documentation responsible | +| Mayorov Daniil | @Daniil20xx | d.mayorov@innopolis.university | Backend developer | Backend development, Database interactions | +| Antipov Alexey | @Aleksey_Antipov1725 | a.antipov@innopolis.university | Backend developer | Backend development, Database interactions | | Kuchukbaeva Regina | The Grand Architecton | r.kuchukbaeva@innopolis.university | UX/UI-Designer | Figma design | - +| Basanov Maxim | @scruffyscarf | m.basanov@innopolis.university | Project Manager | Team coordination, Documentation responsible | ## Brainstorming @@ -141,7 +140,50 @@ Cons: ### Initial scope -*...* +### MVP v0 (3 weeks) +The goal of MVP v0 is to create a working version of the platform in which the user can complete a questionnaire, see which professions might suit him, choose a university and get basic recommendations on the Unified State Exam. +**Basic functionality:** +1. Authentication and Profile + - Register and log in using email and password. + - Minimum personal account: name, class, region, average score. +2. Career guidance questionnaire (without AI) + - A questionnaire with questions about interests, favorite subjects, and personality type. + - After passing through, the user is shown 3-5 professions based on manual rules. + - Each profession includes a description and a list of required exam subjects. +3. The University selection module + - The user selects a region and a budget/contract. + - The application displays a table of universities with scores, cost and referral. + - So far, there is no comparison or analysis. +4. Preparation for the Unified State Exam + - The necessary subjects are offered for the chosen profession. + - Recommended number of hours per week. + - A mini-test on one subject (5 questions) with an assessment of the level of knowledge. + +What is not included: +- AI-profession recommendations +- Tutors and mentors +- Score forecast, progress tracker +- Chat, export to calendar + +### MVP v1 (up to 7 weeks) +The goal of MVP v1 is to implement AI recommendations and bring the platform to a full—fledged product for schoolchildren. +What is being added: +1. Artificial intelligence + - A trained ML model based on questionnaires. + - Recommendations of professions with precise justification (for example, “pediatric surgeon" + why). +2. University Module — Advanced + - Comparison of universities by scores, rating, and cost. + - The ability to add to favorites. +3. Preparation for the Unified State Exam — tracker and forecast + - Tracker of studied topics and hours. + - Forecast of results for mini-tests. + - Export the plan to Google Calendar. +4. The Tutors and Mentors module + - Filters by subject, communication style. + - Student and mentor cards (for example, “Nastya, MGU student, chemistry 95”). +5. Interface + - Updated design. + - Personal account with all modules and saved results. ## Tech-stack @@ -170,19 +212,17 @@ Here is our Figma table with all future implementation - https://www.figma.com/d ## Individual contribution of each participant -**Andruwenko Valery** – +**Andruwenko Valery** – the architectural scheme of the career guidance system, the final version of the questionnaire (35+ questions) with blocks, generated synthetic questionnaires (40 lines) with signs and target professions, a separate dataset for training the MBTI model, studied and selected open datasets MBTI and Holland Code -**Chugaeva Mariia** – Logo app implementation and data base of university collection +**Chugaeva Mariia** – logo app implementation and data base of university collection -**Zakirov Karim** – The first page, which is displayed when the user log in to the system, implements a basic interface with a welcome message, registration page with a user data entry form +**Zakirov Karim** – the first page, which is displayed when the user log in to the system, implements a basic interface with a welcome message, registration page with a user data entry form **Mayorov Daniil** and **Antipov Alexey** - discussed how the architecture of the project will look in general, thought about which protocols to use to communicate between different parts of the project - created a picture of architecture. discussed the structure of the project - was created a new branch with folder structure -**Basanov Maxim** – Establishing communication between each participants, emerging problem solving, GitHub maintaining - -**Kuchukbaeva Regina** – Basic view of app implementation: drawed sign up, log in, password validation and forgot password algorithms - +**Kuchukbaeva Regina** – basic view of app implementation: drawed sign up, log in, password validation and forgot password algorithms +**Basanov Maxim** – establishing communication between each participants, emerging problem solving, GitHub and all documentation maintaining, this report writing ## Confirmation of the code's operability From 9b0c8d0b6abe3979321fa8b0df516074c6938d29 Mon Sep 17 00:00:00 2001 From: scruffyscarf <114242238+scruffyscarf@users.noreply.github.com> Date: Wed, 11 Jun 2025 15:47:47 +0300 Subject: [PATCH 05/17] Update week1.md --- content/docs/2025/Smartify/week1.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/content/docs/2025/Smartify/week1.md b/content/docs/2025/Smartify/week1.md index 21e5e9a3f..ffd1e93da 100644 --- a/content/docs/2025/Smartify/week1.md +++ b/content/docs/2025/Smartify/week1.md @@ -117,7 +117,6 @@ Cons: 2. Parents of High Schoolers - To help a child choose a future profession -- Monitor progress in preparation for the Unified State Exam - Find affordable and high-quality educational resources or tutors 3. Tutors and Mentors @@ -195,11 +194,18 @@ What is being added: 2. Frontend - Flutter - Flutter for a development the app due to its cross-platform nature, which allows us to create apps for iOS and Android with a single codebase. Flutter provides high performance and smooth interface, as well as offers design flexibility through a variety of widgets. -3. Backend - Python, Go, MongoDB, PostgreSQL +3. Backend - Python, Go, MongoDB, PostgreSQL, psycopg2, SQLAlchemy, asyncpg, pymongo, grpsio, bcrypt, numpy - Python for the server side of the code, as it is optimal for working with databases and ML models. He also already has experience working with various protocols, databases and ML, gained in the 2nd year of the 2nd semester. - Go for the user-side backend because it is integrated with flutter. - MongoDB for storing information about universities, professions, and tests - Postgresql for storing user information because it is optimal for working with vectors + - psycopg2 for connection to PostgreSQL + - SQLAlchemy for a convenient abstraction of working with a database + - asyncpg for asynchronous execution of database operations and query processing + - pymongo for work with MongoDB + - grpsio for interaction between services + - bcrypt for hashing and password verification + - numpy for numerical operations, working with vectors 4. Design - Figma - Figma for easy and convenient operation with each component of design From 503ea873aed5ea7de69dd0b29b70d8b223909d15 Mon Sep 17 00:00:00 2001 From: scruffyscarf <114242238+scruffyscarf@users.noreply.github.com> Date: Wed, 11 Jun 2025 16:31:46 +0300 Subject: [PATCH 06/17] Update week1.md --- content/docs/2025/Smartify/week1.md | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/content/docs/2025/Smartify/week1.md b/content/docs/2025/Smartify/week1.md index ffd1e93da..f32a4596a 100644 --- a/content/docs/2025/Smartify/week1.md +++ b/content/docs/2025/Smartify/week1.md @@ -191,21 +191,30 @@ What is being added: - pandas for working with data. - matplotlib for visualization. -2. Frontend - Flutter +2. Frontend - Flutter and its packets - Flutter for a development the app due to its cross-platform nature, which allows us to create apps for iOS and Android with a single codebase. Flutter provides high performance and smooth interface, as well as offers design flexibility through a variety of widgets. + - dio – for sending requests to the REST API. + - shared_preferences – for storing simple data (for example, tokens, settings). + - flutter_secure_storage - a secure encrypted storage for confidential data. + - hive - a fast local database for storing complex structures. + - go_router – for a convenient navigation system between screens. + - flutter_bloc – for managing the state of the application using the BLoC template. + - riverpod - an alternative to BLoC, a flexible way to manage state. + - flutter_screenutil – scaling the UI to fit different screen sizes. + - web_socket_channel – for connection to WebSocket for real-time interaction. 3. Backend - Python, Go, MongoDB, PostgreSQL, psycopg2, SQLAlchemy, asyncpg, pymongo, grpsio, bcrypt, numpy - Python for the server side of the code, as it is optimal for working with databases and ML models. He also already has experience working with various protocols, databases and ML, gained in the 2nd year of the 2nd semester. - Go for the user-side backend because it is integrated with flutter. - - MongoDB for storing information about universities, professions, and tests - - Postgresql for storing user information because it is optimal for working with vectors - - psycopg2 for connection to PostgreSQL - - SQLAlchemy for a convenient abstraction of working with a database - - asyncpg for asynchronous execution of database operations and query processing - - pymongo for work with MongoDB - - grpsio for interaction between services - - bcrypt for hashing and password verification - - numpy for numerical operations, working with vectors + - MongoDB for storing information about universities, professions, and tests. + - Postgresql for storing user information because it is optimal for working with vectors. + - psycopg2 for connection to PostgreSQL. + - SQLAlchemy for a convenient abstraction of working with a database. + - asyncpg for asynchronous execution of database operations and query processing. + - pymongo for work with MongoDB. + - grpsio for interaction between services. + - bcrypt for hashing and password verification. + - numpy for numerical operations, working with vectors. 4. Design - Figma - Figma for easy and convenient operation with each component of design From 1dec07427e2d5488f9c2aab5007bfb6e3da75ec7 Mon Sep 17 00:00:00 2001 From: scruffyscarf <114242238+scruffyscarf@users.noreply.github.com> Date: Wed, 11 Jun 2025 23:36:27 +0300 Subject: [PATCH 07/17] Update week1.md --- content/docs/2025/Smartify/week1.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/content/docs/2025/Smartify/week1.md b/content/docs/2025/Smartify/week1.md index f32a4596a..69e4c3922 100644 --- a/content/docs/2025/Smartify/week1.md +++ b/content/docs/2025/Smartify/week1.md @@ -227,17 +227,17 @@ Here is our Figma table with all future implementation - https://www.figma.com/d ## Individual contribution of each participant -**Andruwenko Valery** – the architectural scheme of the career guidance system, the final version of the questionnaire (35+ questions) with blocks, generated synthetic questionnaires (40 lines) with signs and target professions, a separate dataset for training the MBTI model, studied and selected open datasets MBTI and Holland Code +**Andruwenko Valery** – the architectural scheme of the career guidance system, the final version of the questionnaire (35+ questions) with blocks, generated synthetic questionnaires (40 lines) with signs and target professions, a separate dataset for training the MBTI model, studied and selected open datasets MBTI and Holland Code - https://github.com/IU-Capstone-Project-2025/Smartify/tree/main/ml -**Chugaeva Mariia** – logo app implementation and data base of university collection +**Chugaeva Mariia** – logo app implementation and data base of university collection - https://github.com/IU-Capstone-Project-2025/Smartify/pull/4/commits -**Zakirov Karim** – the first page, which is displayed when the user log in to the system, implements a basic interface with a welcome message, registration page with a user data entry form +**Zakirov Karim** – the first page, which is displayed when the user log in to the system, implements a basic interface with a welcome message, registration page with a user data entry form - https://github.com/IU-Capstone-Project-2025/Smartify/pull/5/commits -**Mayorov Daniil** and **Antipov Alexey** - discussed how the architecture of the project will look in general, thought about which protocols to use to communicate between different parts of the project - created a picture of architecture. discussed the structure of the project - was created a new branch with folder structure +**Mayorov Daniil** and **Antipov Alexey** - discussed how the architecture of the project will look in general, thought about which protocols to use to communicate between different parts of the project - created a picture of architecture, discussed the structure of the project - was created a new branch with folder structure - https://github.com/IU-Capstone-Project-2025/Smartify/pull/7/commits -**Kuchukbaeva Regina** – basic view of app implementation: drawed sign up, log in, password validation and forgot password algorithms +**Kuchukbaeva Regina** – basic view of app implementation: drawed sign up, log in, password validation and forgot password algorithms - https://www.figma.com/design/kw2m1A0ArR9Tb4Obcb2FPx/Smartify?node-id=30-8511 -**Basanov Maxim** – establishing communication between each participants, emerging problem solving, GitHub and all documentation maintaining, this report writing +**Basanov Maxim** – establishing communication between each participants at meetings and in the Telegram, emerging problem solving, GitHub repositories, Backlog and all documentation maintaining, this report writing - https://github.com/orgs/IU-Capstone-Project-2025/projects/2 ## Confirmation of the code's operability From 32e9df3f77bb5d7439119bf2b9693db12f7fcac6 Mon Sep 17 00:00:00 2001 From: scruffyscarf <114242238+scruffyscarf@users.noreply.github.com> Date: Wed, 11 Jun 2025 23:37:38 +0300 Subject: [PATCH 08/17] Update week1.md --- content/docs/2025/Smartify/week1.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/content/docs/2025/Smartify/week1.md b/content/docs/2025/Smartify/week1.md index 69e4c3922..ce705d975 100644 --- a/content/docs/2025/Smartify/week1.md +++ b/content/docs/2025/Smartify/week1.md @@ -219,10 +219,6 @@ What is being added: 4. Design - Figma - Figma for easy and convenient operation with each component of design -## *Something else you want to add* - -Here is our Figma table with all future implementation - https://www.figma.com/design/kw2m1A0ArR9Tb4Obcb2FPx/Smartify?node-id=30-8511 - # Weekly commitments ## Individual contribution of each participant From b99358ead3d2eb0880126e1251d426f6e9c551ff Mon Sep 17 00:00:00 2001 From: scruffyscarf <114242238+scruffyscarf@users.noreply.github.com> Date: Thu, 19 Jun 2025 00:05:06 +0300 Subject: [PATCH 09/17] Create week2.md --- content/docs/2025/Smartify/week2.md | 176 ++++++++++++++++++++++++++++ 1 file changed, 176 insertions(+) create mode 100644 content/docs/2025/Smartify/week2.md diff --git a/content/docs/2025/Smartify/week2.md b/content/docs/2025/Smartify/week2.md new file mode 100644 index 000000000..3636668ff --- /dev/null +++ b/content/docs/2025/Smartify/week2.md @@ -0,0 +1,176 @@ +--- +title: "Week #2" +--- + +# **Week #2** + +### Prioritized backlog + +Link to backlog: https://github.com/orgs/IU-Capstone-Project-2025/projects/2 + +## Project specific progress + +## 🎨 UX/UI + +- Project information page +- University listing interface: + - Card-based layout + - Tags for quick navigation + - Indexed real-time search +- University detail page +- Filters for university search: + - Region + - Rating + - Number of government-funded places + - Dormitory availability + - Military education center + - Faculties +- “Show All” page for full university listings + +## 💻 Frontend + +- **University List Page**: + - Full-featured `UniversityPage` + - Responsive `GridView` with dynamic card sizing + - Real-time search filter by university name + - Filter icon added (functionality stubbed for future updates) + +- **University Card Component**: + - Displays image, name, and rating + - Image loading errors handled using `errorBuilder` + - Long names truncated using `TextOverflow.ellipsis` + - `onTap` action navigates to detail page + +- **University Detail Page**: + - Large cover image + - University name, rating, location, motto, and description + - Back button + - Favorite button (`favorite_border` icon) + +- **Demo Grid Screen**: + - `UniversityGrid` created for previewing card layout. + +- **Auth Pages**: + - `sign_up_page.dart`: User registration form + - `reset_password_page.dart`: Password recovery page + - Button colors on auth and landing pages. + - Navigation bug fixed (registering a new user no longer redirects to login). + - Logo image and adjusted based on design feedback + +## 🛠️ Backend + +- **User Authentication**: + - PostgreSQL connection parameters updated and tested via pgAdmin + - Container orchestration stabilized + +- **Token-Based Authentication**: + - Access & Refresh tokens generated on login + - `auth.go` module created: + - Token generation logic + - Secret key, expiration time, and encryption algorithm + - `refresh_tokens` table in the database + - Token-related DB functions in `database_api.go`. + - `LoginHandler` updated to: + - Verify user credentials. + - Generate and store refresh token. + - Return token pair in JSON response. + +- **Password Security**: + - Password hashing + - Improved user validation with email format checks and duplication prevention. + +- **New Features (In Progress)**: + - `main.go` + - `login.go` endpoint for user registration and DB storage + - Temporary Docker setup for Go app and DB + - Flutter-side connection to Go backend via `api_server` + +- **Email Verification Flow** (`registration.go`): + - Email registration + - Send verification code + - Confirm code + - Create password + +## 🤖 ML + +- **Professions Dataset**: + - `professions.json` with 100 professions + - Each entry includes: + - Description (3–4 sentences) + - Relevant entrance exams (ЕГЭ) + - MBTI types + - Interests, values, roles, workplaces + - Education level, salary range, and growth outlook + - Justification provided for each entry + +- **Career Test Dataset**: + - `dataset_career_test.json` to simulate user test data + - Structure of career-related user profiles + +- **Data Validation**: + - `validation_report_dataset_career_test.txt` confirms correct structure. + - Python scripts: + - `generate_dataset.py`: Dataset generation + - `validate_dataset.py`: Schema and consistency checks + +- **Survey and Synthetic Data**: + - `Анкета профориентации.pdf`: Career survey created + - `Синтетические_анкеты_профориентации.csv`: Synthetic user answers + - `Шкалиные_вопросы_MBTI_с_типами.csv`: Data for MBTI-type mapping + +# Weekly commitments + +## Individual contribution of each participant + +**Andruwenko Valery** – Compiled a detailed professions.json file containing 100 professions with descriptions, relevant exam subjects, MBTI types, values, interests, work environments, education levels, salary ranges, and growth potential. Created dataset_career_test.json for testing the career recommendation system, along with a validation report confirming data integrity. Developed and tested two Python scripts: generate_dataset.py for dataset creation and validate_dataset.py for structural validation. Also prepared a career questionnaire in PDF format and generated synthetic user responses in CSV files. +https://github.com/IU-Capstone-Project-2025/Smartify/pull/34 + +**Chugaeva Mariia** – Created sign_up_page.dart and reset_password_page.dart for registration and password recovery. Fixed button colors on auth and landing pages, resolved a redirect bug during account creation, and replaced the project title with a proper logo image. Updated the logo per feedback. Code is functional. A few interface improvements and crash fixes are still needed to match the latest Figma design. +https://github.com/IU-Capstone-Project-2025/Smartify/pull/39 + +**Zakirov Karim** – Developed a fully functional UniversityPage displaying a responsive grid of university cards based on universities.json. Implemented real-time search by university name and adaptive card sizing. Created the UniversityCard component showing image, name, and rating with error handling and layout trimming. Implemented navigation to the UniversityDetailPage, which includes detailed university info, hero animation, and a favorite icon. Also built a demo UniversityGrid for previewing cards. +https://github.com/IU-Capstone-Project-2025/Smartify/pull/29 + +**Mayorov Daniil** and **Antipov Alexey** - Fixed an issue where users were not being saved to the database. Updated PostgreSQL connection settings and integrated pgAdmin for manual data inspection. Docker containers are now synchronized and launch reliably. Implemented access and refresh token generation during login. Created the auth.go module to handle token creation and management, with configured secret keys, expiration time, and encryption algorithm. Added a refresh_tokens table in the database and corresponding functions in database_api.go. The LoginHandler was updated to validate users, generate tokens, save the refresh token, and return a proper JSON response. Password hashing and email validation were implemented, including checks for duplicate emails. Minor bugs were also fixed. +https://github.com/IU-Capstone-Project-2025/Smartify/pull/44 + +**Kuchukbaeva Regina** – Designed the main informational page about the project, the university listing interface with card layout, tag-based filtering, and indexed search. Created a detailed university profile page and implemented filtering options including region, rating, budget seats, dormitory availability, military training center, and faculties. A “Show All” page was also designed to improve navigation and discovery. +https://www.figma.com/design/kw2m1A0ArR9Tb4Obcb2FPx/Smartify?node-id=30-8511 + +**Basanov Maxim** – Establishing communication between each participants at meetings and in the Telegram, emerging problem solving, GitHub repositories, Backlog and all documentation maintaining, this report writing +https://github.com/orgs/IU-Capstone-Project-2025/projects/2 + +## Plan for Next Week + +### 🛠️ UX/UI + +- Development of a user role selection page: student/teacher/mentor. Personalize the content depending on the chosen role. +- Educational interface, a guide to the main functions of the application +- Optimization and improvement of current functionality + +### 🛠️ Frontend + +- Integrate new UI components based on updated Figma designs. +- Fix crash caused by arrow button interactions. +- Improve visual consistency with the latest mockups. + +### 🛠️ Backend + +- Implement the possibility of restoring your account by mail +- Connect mongodb to go +- Implement an API on go to manage mongodb +- Implement token storage on the client side +- Implement automatic login to the account using a token + +### 🛠️ ML + +- Write Python script to analyze dataset +- Normalize and index `professions.json`, `dataset_career_test.json`, and `universities.json` +- Datasets for training recommendation model +- Prototype model using `scikit-learn` or `TensorFlow` + +## Confirmation of the code's operability + +We confirm that the code in the main branch: +- [+] In working condition +- [+] Run via docker-compose (described in the `README.md`) From 3e9847031b5507dcce409f6a4c0f8c1e09b8b0ff Mon Sep 17 00:00:00 2001 From: scruffyscarf <114242238+scruffyscarf@users.noreply.github.com> Date: Wed, 25 Jun 2025 17:41:16 +0300 Subject: [PATCH 10/17] Create week3.md --- content/docs/2025/Smartify/week3.md | 127 ++++++++++++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 content/docs/2025/Smartify/week3.md diff --git a/content/docs/2025/Smartify/week3.md b/content/docs/2025/Smartify/week3.md new file mode 100644 index 000000000..ffdc53618 --- /dev/null +++ b/content/docs/2025/Smartify/week3.md @@ -0,0 +1,127 @@ +--- +title: "Week #3" +--- + +# **Week #3** + +## Implemented MVP features + +... + +## Demonstration of the working MVP + +Link - ... + +# Weekly commitments + +## Individual contribution of each participant + + +## 🎨 UX/UI + +Responsible - **Kuchukbaeva Regina** + - The career guidance test page + - User profile page + - The ЕГЭ preparation tracker page + +https://www.figma.com/design/7D72pnxGyyRk9lh58vzCFY/INFO-UNIVERSITIES?node-id=0-1&p=f + +https://github.com/IU-Capstone-Project-2025/Smartify/issues/49 + +## 💻 Frontend + +Responsible - **Chugaeva Mariia** and **Zakirov Karim** + +- A main menu page has been created with navigation through the rest of the project +- Added password recovery steps: pin confirmation and entering a new password +- The interface of the already implemented pages has been translated into Russian +- Added a profile page: the ability to log out of your account, avatar display, siding animation and other visual elements +- Implemented a profile page +- Added transitions between pages +- An intermediate Professions Page has been created with the "Complete the questionnaire" button (in the future there will be a list of professions) +- University Filtering page: + - Region and faculty selection + - Sliders are used for setting rating and the number of budget-funded places + - Switches are available for the "Dormitory" and "Military Training Center" filters + - Buttons are provided to clear filters and apply them. +- Progress Track page: + - Subjects can be added and removed. + - Each subject allows adding tasks with a title and duration. + - Tasks can be edited and marked as completed + - The overall completion percentage is visualized with a CircularPercentIndicator + +https://github.com/IU-Capstone-Project-2025/Smartify/pull/64 + +## 🛠️ Backend + +Responsible - **Mayorov Daniil** and **Antipov Alexey** + - Fixed errors with sending responses from the server + - Added API for password recovery + - Fixed the issue of freezing when sending emails + - Added a client-side API for working with tokens (not yet connected to the main application) + - Implement mongo for questionnaire + +https://github.com/IU-Capstone-Project-2025/Smartify/pull/66 + +## 🤖 ML + +Responsible - **Andruwenko Valery** + - Developed an algorithm for determining MBTI based on questionnaire responses + - Assigned each question to MBTI scales (E/I, S/N, T/F, J/P) + - The determine_mbti() function has been written, which returns the personality type and is embedded in the database processing script + - Сollected and structured descriptions of all 16 MBTI types + - A new dataset_with_mbti_descriptions.json database has been created + - Сonducted a user survey among schoolchildren + +https://github.com/IU-Capstone-Project-2025/Smartify/pull/69 +https://docs.google.com/forms/d/1Ji5ww8OqN9WK-KvSsFbEP0bQxo4Id6vv4m_Zv_A0dhs/edit#responses + +## 📥 Project Management + +Responsible - **Basanov Maxim** + - Establishing communication between each participants in the Telegram + - Emerging problem solving, meetings organization + - GitHub repositories, Backlog and all documentation maintaining + - This report writing + +https://github.com/orgs/IU-Capstone-Project-2025/projects/2 + + + +## Plan for Next Week + +### 🛠️ UX/UI + + - The UI for the tutors section + - The tutorial design + - Refine the user profile design + +### 🛠️ Frontend + +- Complete the implementation of the Professions Page +- Implement the tracker page +- Adapt the design to meet new requirements + +### 🛠️ Backend + + - Connect the client API for tokens to the application + - Implement automatic login + - Set up mail upload in the application + - Implement the saving of the user questionnaire + - MongoDB service is connected and linked to MongoDB Compass for database interaction + - The MongoDB connection function to the Go server + - Functions for adding and updating universities, questionnaires, and professions with appropriate checks + - On the client side, a function for collecting a questionnaire and sending it via the API + +### 🛠️ ML + +- Completion of databases with the universities +- ML on the recommendation of professions + + + +## Confirmation of the code's operability + +We confirm that the code in the main branch: +- [+] In working condition. +- [+] Run via docker-compose (or another alternative described in the `README.md`). From fc6361596d975dc0504de4a0ffe7b4edc9d0ce0c Mon Sep 17 00:00:00 2001 From: scruffyscarf <114242238+scruffyscarf@users.noreply.github.com> Date: Wed, 25 Jun 2025 17:46:58 +0300 Subject: [PATCH 11/17] Update week3.md --- content/docs/2025/Smartify/week3.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/content/docs/2025/Smartify/week3.md b/content/docs/2025/Smartify/week3.md index ffdc53618..130815521 100644 --- a/content/docs/2025/Smartify/week3.md +++ b/content/docs/2025/Smartify/week3.md @@ -60,6 +60,10 @@ Responsible - **Mayorov Daniil** and **Antipov Alexey** - Fixed the issue of freezing when sending emails - Added a client-side API for working with tokens (not yet connected to the main application) - Implement mongo for questionnaire + - MongoDB service is connected and linked to MongoDB Compass for database interaction + - The MongoDB connection function to the Go server + - Functions for adding and updating universities, questionnaires, and professions with appropriate checks + - On the client side, a function for collecting a questionnaire and sending it via the API https://github.com/IU-Capstone-Project-2025/Smartify/pull/66 @@ -108,10 +112,6 @@ https://github.com/orgs/IU-Capstone-Project-2025/projects/2 - Implement automatic login - Set up mail upload in the application - Implement the saving of the user questionnaire - - MongoDB service is connected and linked to MongoDB Compass for database interaction - - The MongoDB connection function to the Go server - - Functions for adding and updating universities, questionnaires, and professions with appropriate checks - - On the client side, a function for collecting a questionnaire and sending it via the API ### 🛠️ ML From 09c582678b391d9666324ce589bf4253368bf6f0 Mon Sep 17 00:00:00 2001 From: scruffyscarf <114242238+scruffyscarf@users.noreply.github.com> Date: Wed, 25 Jun 2025 21:26:47 +0300 Subject: [PATCH 12/17] Update week3.md --- content/docs/2025/Smartify/week3.md | 79 +++++++++++++++++++++++++++-- 1 file changed, 76 insertions(+), 3 deletions(-) diff --git a/content/docs/2025/Smartify/week3.md b/content/docs/2025/Smartify/week3.md index 130815521..16bbd691e 100644 --- a/content/docs/2025/Smartify/week3.md +++ b/content/docs/2025/Smartify/week3.md @@ -6,17 +6,90 @@ title: "Week #3" ## Implemented MVP features -... +## 🧭 **User Journey Overview** + +#### 👤 1. **Registration, Authentication and Password Recovery** + +- User opens the app +- Navigates to the registration screen +- Enters email and password +- Confirms registration via email code +- Later, user can tap Forgot password: + - Requests a password reset via email + - Sets a new password and logs in again + +✅ Related artefacts: +- [Frotend](https://github.com/IU-Capstone-Project-2025/Smartify/issues/13) +- [Backend (Registration and Authentication)](https://github.com/IU-Capstone-Project-2025/Smartify/issues/16) +- [Backend (Password Recovery)](https://github.com/IU-Capstone-Project-2025/Smartify/issues/18) + +--- + +#### 🏠 2. **Home Screen** + +- After logging in, user sees the home page with an overview of functionality +- Home includes access to: + - University search + - Questionnaire + - Progress tracking + - Profile settings + +✅ Related artefacts: +- [Design](https://github.com/IU-Capstone-Project-2025/Smartify/issues/49) +- [Frontend](https://github.com/IU-Capstone-Project-2025/Smartify/issues/53) + +--- + +#### 🔍 3. **University Search Page** + +- User opens Search University page +- Can: + - Search by name + - Apply filters + - View matching universities + +✅ Related artefacts: +- [Design](https://github.com/IU-Capstone-Project-2025/Smartify/issues/12) +- [Frontend](https://github.com/IU-Capstone-Project-2025/Smartify/issues/14) + +--- + +#### 📝 4. **Questionnaire** + +- User opens the questionnaire +- Answers a series of structured questions +- Submits the questionnaire +- Server receives and saves the data + +✅ Related artefacts: +- [Design](https://github.com/IU-Capstone-Project-2025/Smartify/issues/49) +- [Frontend](https://github.com/IU-Capstone-Project-2025/Smartify/issues/55) +- [Backend](https://github.com/IU-Capstone-Project-2025/Smartify/issues/58) + +--- + +#### 📆 5. **Progress Tracking Page** + +- User visits progress screen** +- Can: + - Add personal learning or career goals + - Set time for each task + - View progress or daily schedule + +✅ Related artefacts: +- [Design](https://github.com/IU-Capstone-Project-2025/Smartify/issues/12) +- [Frontend](https://github.com/IU-Capstone-Project-2025/Smartify/issues/62) + +--- ## Demonstration of the working MVP -Link - ... +Link - [Google Disk](https://drive.google.com/file/d/151nhpK6KhIyqQk9jXJx20fANeS7_gvnI/view) # Weekly commitments ## Individual contribution of each participant - ## 🎨 UX/UI Responsible - **Kuchukbaeva Regina** From fce9d46c1f68835a4eb1255f2aeae0bd7dbd48e3 Mon Sep 17 00:00:00 2001 From: scruffyscarf <114242238+scruffyscarf@users.noreply.github.com> Date: Wed, 25 Jun 2025 21:31:50 +0300 Subject: [PATCH 13/17] Update week3.md --- content/docs/2025/Smartify/week3.md | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/content/docs/2025/Smartify/week3.md b/content/docs/2025/Smartify/week3.md index 16bbd691e..27bb21a84 100644 --- a/content/docs/2025/Smartify/week3.md +++ b/content/docs/2025/Smartify/week3.md @@ -97,9 +97,9 @@ Responsible - **Kuchukbaeva Regina** - User profile page - The ЕГЭ preparation tracker page -https://www.figma.com/design/7D72pnxGyyRk9lh58vzCFY/INFO-UNIVERSITIES?node-id=0-1&p=f - -https://github.com/IU-Capstone-Project-2025/Smartify/issues/49 +✅ Related artefacts: +- [Figma](https://www.figma.com/design/7D72pnxGyyRk9lh58vzCFY/INFO-UNIVERSITIES?node-id=0-1&p=f) +- [Issue](https://github.com/IU-Capstone-Project-2025/Smartify/issues/49) ## 💻 Frontend @@ -123,7 +123,8 @@ Responsible - **Chugaeva Mariia** and **Zakirov Karim** - Tasks can be edited and marked as completed - The overall completion percentage is visualized with a CircularPercentIndicator -https://github.com/IU-Capstone-Project-2025/Smartify/pull/64 +✅ Related artefacts: +- [PR](https://github.com/IU-Capstone-Project-2025/Smartify/pull/64) ## 🛠️ Backend @@ -138,7 +139,8 @@ Responsible - **Mayorov Daniil** and **Antipov Alexey** - Functions for adding and updating universities, questionnaires, and professions with appropriate checks - On the client side, a function for collecting a questionnaire and sending it via the API -https://github.com/IU-Capstone-Project-2025/Smartify/pull/66 +✅ Related artefacts: +- [PR](https://github.com/IU-Capstone-Project-2025/Smartify/pull/66) ## 🤖 ML @@ -148,10 +150,11 @@ Responsible - **Andruwenko Valery** - The determine_mbti() function has been written, which returns the personality type and is embedded in the database processing script - Сollected and structured descriptions of all 16 MBTI types - A new dataset_with_mbti_descriptions.json database has been created - - Сonducted a user survey among schoolchildren + - Сonducted a user questionnaire among schoolchildren -https://github.com/IU-Capstone-Project-2025/Smartify/pull/69 -https://docs.google.com/forms/d/1Ji5ww8OqN9WK-KvSsFbEP0bQxo4Id6vv4m_Zv_A0dhs/edit#responses +✅ Related artefacts: +- [PR](https://github.com/IU-Capstone-Project-2025/Smartify/pull/69) +- [Questionnaire](https://docs.google.com/forms/d/1Ji5ww8OqN9WK-KvSsFbEP0bQxo4Id6vv4m_Zv_A0dhs/edit#responses) ## 📥 Project Management @@ -161,7 +164,8 @@ Responsible - **Basanov Maxim** - GitHub repositories, Backlog and all documentation maintaining - This report writing -https://github.com/orgs/IU-Capstone-Project-2025/projects/2 +✅ Related artefacts: +- [Backlog](https://github.com/orgs/IU-Capstone-Project-2025/projects/2) From cc995f6fd4c916b5676a4a630992d1bfda346dfb Mon Sep 17 00:00:00 2001 From: scruffyscarf <114242238+scruffyscarf@users.noreply.github.com> Date: Wed, 25 Jun 2025 21:34:16 +0300 Subject: [PATCH 14/17] Update week3.md --- content/docs/2025/Smartify/week3.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/content/docs/2025/Smartify/week3.md b/content/docs/2025/Smartify/week3.md index 27bb21a84..069c4f7af 100644 --- a/content/docs/2025/Smartify/week3.md +++ b/content/docs/2025/Smartify/week3.md @@ -182,6 +182,11 @@ Responsible - **Basanov Maxim** - Complete the implementation of the Professions Page - Implement the tracker page - Adapt the design to meet new requirements +- Refine the tracker's design +- Finalize the design of the university page +- Supplement the database with universities with missing data +- Create a tab with the top of universities +- Add a detailed description of the universities ### 🛠️ Backend From 28f69d7e0746b2bbc87535ed1036b0b1fd8d48cb Mon Sep 17 00:00:00 2001 From: scruffyscarf <114242238+scruffyscarf@users.noreply.github.com> Date: Wed, 2 Jul 2025 22:30:27 +0300 Subject: [PATCH 15/17] Create week4.md --- content/docs/2025/Smartify/week4.md | 185 ++++++++++++++++++++++++++++ 1 file changed, 185 insertions(+) create mode 100644 content/docs/2025/Smartify/week4.md diff --git a/content/docs/2025/Smartify/week4.md b/content/docs/2025/Smartify/week4.md new file mode 100644 index 000000000..39a9ba975 --- /dev/null +++ b/content/docs/2025/Smartify/week4.md @@ -0,0 +1,185 @@ +--- +title: "Week #4" +--- + +# **Week #4** + +## CI/CD + +The pipeline does the following: + +- Responds to push or pull_request in main +- Establishes an SSH connection to a remote server using a secret key +- Copies the project (docker-compose.yml, backend, frontend, database, ml) to the server +- Performs on the server: + - docker-compose build — collects + - docker images-compose up -d +- Deletes the key after completion for security + +### Links to CI/CD configuration files +[Here](https://github.com/IU-Capstone-Project-2025/Smartify/blob/main/.github/workflows/main.yml) is the CI/CD configuration file + +## Deployment + +What's unfolding: +- backend/ - a backend service +- frontend/ — an interface +- ml/ — ML model +- database/ — databases +- docker-compose.yml — binds all services in containers + +Where it is deployed: +- Remote server with IP 213.226.112.206 +- Under the user ghrunner +- To the /pro/smartify directory + +How: +- The SCP files are copied first. +- Then on the server: + - The project is being built with the docker-compose build + - It starts with docker-compose up -d + +## Vibe Check + +Everything is going well with the team. We're all on track and managing to meet our deadlines smoothly. Everyone is contributing effectively, and there are no major roadblocks at the moment. The team dynamics are positive, and communication is clear, so we are confident that we will continue to work constantly. Since our project is quite voluminous and involves constant use by people, we try to fill it with various features as much as possible. + +# Weekly commitments + +## Individual contribution of each participant + + + +## 🎨 UX/UI + +Responsible - **Kuchukbaeva Regina** + - Implement the tutors page + - Implement tutorship page + - Working on a privacy policy + +✅ Related artefacts: +- [Figma](https://www.figma.com/design/7D72pnxGyyRk9lh58vzCFY/INFO-UNIVERSITIES?node-id=0-1&p=f) +- [Tutors page](https://github.com/IU-Capstone-Project-2025/Smartify/issues/70) +- [Tutorship page](https://github.com/IU-Capstone-Project-2025/Smartify/issues/71) + + + +## 💻 Frontend + +Responsible - **Chugaeva Mariia** + +- Page with a list of professions with a search by name +- Page with the details of the professions with a detailed description +- Fixed a bug with text input in the field in the questionnaire +- Fixed the displacement of the button on the phone screen +- Replaced the university icon with a new one +- Changed the hierarchy of the profession and EXAM preparation buttons according to the updated design + +✅ Related artefacts: +- [PR](https://github.com/IU-Capstone-Project-2025/Smartify/pull/87) + + +Responsible - **Zakirov Karim** + +- Adding universities to favorites +- Implementing a tape with selected universities at the top of the page +- Adding information about faculties and region to the university card +- Implement animations when scrolling through a carousel with favorites +- Adding deadlines to Task Tracker +- Adding a calendar page +- Ability to view current assignments by date + +✅ Related artefacts: +- [PR](https://github.com/IU-Capstone-Project-2025/Smartify/pull/90) + + + +## 🛠️ Backend + +Responsible - **Mayorov Daniil** + - Fixed the problem that caused to be unable to run flutter security storage + - Configured the token storage in a secure location + - Set up automatic login to the account when the token is present + - Set up logging out of the account on the client side + - Implement a couple of functions for saving and reading data in Shared Preferences + configured the mail connection + - Connected the Shared Preference to the application, now your mail is displayed + +✅ Related artefacts: +- [PR](https://github.com/IU-Capstone-Project-2025/Smartify/pull/92) + + +Responsible - **Antipov Alexey** + - Configure token-conversion + - CI/CD configuration + +✅ Related artefacts: +- [PR](https://github.com/IU-Capstone-Project-2025/Smartify/pull/92) + + + +## 🤖 ML + +Responsible - **Andruwenko Valery** + - Analysis and refinement AI.py + - The logic of calculating the rating of professions + - The correctness of the calculation and limitations of the final rating + - The output is the top 5 professions for the student + - Checking professions.json + - Rechecked the file structure + - The presence of required fields: name, description, ege_subjects, mbti_types + +✅ Related artefacts: +- [PR](https://github.com/IU-Capstone-Project-2025/Smartify/pull/88) + + + +## 📥 Project Management + +Responsible - **Basanov Maxim** + - Establishing communication between each participants in the Telegram + - Emerging problem solving, meetings organization + - GitHub repositories, Backlog and all documentation maintaining + - This report writing + +✅ Related artefacts: +- [Backlog](https://github.com/orgs/IU-Capstone-Project-2025/projects/2) + + + +## Plan for Next Week + +### 🛠️ UX/UI + + - Updating the profile page + - Calendar + - Mini-chat + - Privacy Policy for the next weeks: + - Determine which data is being collected + - Study the legal requirements + +### 🛠️ Frontend + +- Filters for finding professions +- Improve the design to better match Figma +- Implement further design as it becomes available +- Calendar +- Mini-chat +- Database with university + +### 🛠️ Backend + + - Renew all files which describe the architecture + - Configure saving questionnare of professions + +### 🛠️ ML + +- Working on ML +- Expand DB of professions +- Connect MLs to the app + + + +## Confirmation of the code's operability + +We confirm that the code in the main branch: +- [+] In working condition. +- [+] Run via docker-compose (or another alternative described in the `README.md`). From e1e9edc82313d182434c4d60fe4cf3c3c684d0b3 Mon Sep 17 00:00:00 2001 From: scruffyscarf <114242238+scruffyscarf@users.noreply.github.com> Date: Wed, 9 Jul 2025 23:49:46 +0300 Subject: [PATCH 16/17] Create week5.md --- content/docs/2025/Smartify/week5.md | 222 ++++++++++++++++++++++++++++ 1 file changed, 222 insertions(+) create mode 100644 content/docs/2025/Smartify/week5.md diff --git a/content/docs/2025/Smartify/week5.md b/content/docs/2025/Smartify/week5.md new file mode 100644 index 000000000..5467c937f --- /dev/null +++ b/content/docs/2025/Smartify/week5.md @@ -0,0 +1,222 @@ +--- +title: "Week #5" +--- + +# **Week #5** + + + +# Feedback + +## Sessions + +We conducted user sessions with representatives of our target audience. + +### Session 1 +**Feedback:** +- User-friendly interface and pleasant design +- Interested in the ability to contact tutors + +### Session 2 +**Feedback:** +- Liked the career guidance test feature +- Not enough information about tutor qualifications +- Wants to know about deadlines + +### Session 3 +**Feedback:** +- Liked the career guidance test feature +- Mobile interface is slightly overloaded +- Wants more gamification and visual feedback +- The university base is very small + + + +# Analyze + +Based on the feedback received, we identified the following key insights: + +### High Priority +- Simplify and make the mobile interface more beautiful +- Make chat for communication +- Increase the university database + +### Medium Priority +- Make notifications + +### Low Priority +- Add gamification and visual rewards for activity + + + +# Iteration & Refinement + +Based on user feedback, we implemented the following improvements: + +- Increased the university database +- Made sketch of chat for communication +- Take a note for notifications and gamification +- During work or free time, do user-friendly design + + + +# Performance & Stability + +We evaluate the performance and stability of our application: + +- **Starting the app:** ~15 sec (due to start from terminal, not deploy) +- **Authentication and Authorization:** immediately after clicking +- **Sending the form:** immediately after clicking +- **Switching pages:** immediately after clicking + + + +# Documentation + +The project includes the following types of documentation: + +1. **README.md** — general project description and goal +2. **Figma** — for creating more design things and features +3. **Backlog** — for maintaining issues and tasks and planning the sprints +4. **Telegram** — for communication and files exchanging + + + +# Weekly commitments + +## Individual contribution of each participant + +## 🎨 UX/UI + +Responsible - **Kuchukbaeva Regina** + - Сhat with tech support + - List of notifications + - Career recommendations page + - Request a teacher to chat with him page + - Start policy development + +✅ Related artefacts: +- [Figma](https://www.figma.com/design/7D72pnxGyyRk9lh58vzCFY/INFO-UNIVERSITIES?node-id=0-1&p=f) +- [Recommended professions page](https://github.com/IU-Capstone-Project-2025/Smartify/issues/97) +- [Tutors page](https://github.com/IU-Capstone-Project-2025/Smartify/issues/98) + + + +## 💻 Frontend + +Responsible - **Chugaeva Mariia** + +- Page with recommendations on professions recommendation_screen.dart +- Page with details recommendation_detail_screen.dart +- Added a link to the recommendations page after sending the questionnaire +- Fixed minor bugs + +✅ Related artefacts: +- [PR](https://github.com/IU-Capstone-Project-2025/Smartify/pull/102/) + + +Responsible - **Zakirov Karim** + +- The tutor list page: + - The layout design has been fully developed + - The filters are stylized, filtering by rating and price ranges has been added + - Fixed an issue with long item names + +- The tutor's detailed page: + - A modern design has been made: a full-width photo, a data card, stylized blocks. + - The "Submit a request" button + +- Application page: + - Initially editable empty fields are implemented + - Calendar Page + +✅ Related artefacts: +- [PR](https://github.com/IU-Capstone-Project-2025/Smartify/pull/107) + + + +## 🛠️ Backend + +Responsible - **Mayorov Daniil** +- Added the ability to save tasks +- Task class for working with tasks +- Subject class for working with subjects +- Manager class, for managing subjects, tasks and saving data +- Fixed all the bugs that occurred while fixing map to object-oriented approach +- Added data saving using SharedPreferences +- Data is stored under the “subjects” key + +✅ Related artefacts: +- [PR](https://github.com/IU-Capstone-Project-2025/Smartify/pull/108) + + +Responsible - **Antipov Alexey** +- Docker for ML +- Service for ML in docker software +- Connected ML to the server +- Functions and endpoints +- Configured recommendations to be saved in DB +- Function to update general information for the user + +✅ Related artefacts: +- [PR](https://github.com/IU-Capstone-Project-2025/Smartify/pull/108) + + + +## 🤖 ML + +Responsible - **Andruwenko Valery** + - Removed the intermediate database + - Structured the output not to the console, but to a separate database + +✅ Related artefacts: +- [PR](https://github.com/IU-Capstone-Project-2025/Smartify/pull/109) +- [Issue](https://github.com/IU-Capstone-Project-2025/Smartify/issues/100) + + + +## 📥 Project Management + +Responsible - **Basanov Maxim** + - Establishing communication between each participants in the Telegram + - Emerging problem solving, meetings organization + - GitHub repositories, Backlog and all documentation maintaining + - This report writing + +✅ Related artefacts: +- [Backlog](https://github.com/orgs/IU-Capstone-Project-2025/projects/2) + + + +## Plan for Next Week + +### 🛠️ UX/UI + +- Privacy policy page +- Minor edits in existing pages are possible +- Сontinuation policy development +- Work with open issues + +### 🛠️ Frontend +- Implement further design +- Improvement the design to better match Figma +- Work with open issues + +### 🛠️ Backend + +- Renew all files which describe the architecture +- Configure saving questionnare of professions +- Make swagger documentation + +### 🛠️ ML + +- Continuous working on MLs +- Expand all DB + + + +## Confirmation of the code's operability + +We confirm that the code in the main branch: +- [+] In working condition. +- [+] Run via docker-compose (or another alternative described in the `README.md`). From 8bf8dc665abcba144b64a13f80344c674d8e488f Mon Sep 17 00:00:00 2001 From: scruffyscarf <114242238+scruffyscarf@users.noreply.github.com> Date: Wed, 16 Jul 2025 23:57:28 +0300 Subject: [PATCH 17/17] Create week6.md --- content/docs/2025/Smartify/week6.md | 449 ++++++++++++++++++++++++++++ 1 file changed, 449 insertions(+) create mode 100644 content/docs/2025/Smartify/week6.md diff --git a/content/docs/2025/Smartify/week6.md b/content/docs/2025/Smartify/week6.md new file mode 100644 index 000000000..71b71f58f --- /dev/null +++ b/content/docs/2025/Smartify/week6.md @@ -0,0 +1,449 @@ +--- +title: "Week #6" +--- + +# **Week #6** + +--- + +# Links + +- [Deployment](http://213.226.112.206:22025) +- [Swagger documentation](http://213.226.112.206:22025/swagger/index.html) +- [Design](https://www.figma.com/design/7D72pnxGyyRk9lh58vzCFY/Smartify?node-id=0-1&p=f&t=ifQCyMjOgBWRaDFr-0) +- [Demo](https://drive.google.com/drive/folders/1NXxsR6Fa9s7O0JoYjUtntHd4RsM2u29l?usp=sharing) +- [Presentation](https://docs.google.com/presentation/d/1xDfDES4q_WClc6Rm1P2zCx-SJXgj_lXOmnvMENQyY1U/edit?usp=sharing) + +# Project overview +Smartify is an educational platform for Russian high school students that helps them choose a profession, choose the right university, prepare for the Unified State Exam, and find a tutor. The main feature is the use of artificial intelligence for personalized recommendations that make the path to admission clear and accessible. + +The platform offers four main page. In the career guidance page, students complete a questionnaire indicating their interests, academic performance, and hobbies. Based on the answers, the system suggests specific professions, immediately indicates the necessary subjects for admission and explains why this profession is suitable. + +The university selection page allows you to filter universities by region, form of study (budget/fee) and direction. It is possible to compare universities by passing scores, tuition fees and rating. + +The ЕГЭ preparation page offers a list of necessary subjects depending on the chosen profession and university, forms an individual curriculum, contains built-in mini-tests and a progress tracker. + +The tutor page allows you to search for teachers by subject, teaching style (friendly, strict, etc.), as well as view detailed profiles with information about education and experience. + +Since our project is quite large and difficult to fully implement in 2 months, we plan to continue working on it and maintain + +--- + +# Features + +# 🟨 Frontend + +## 1. 🔐 Authentication + +### Registration (Multi-step) +- **Email validation** with confirmation code +- **5-digit code input** (via `pin_code_fields` package) +- **Password strength check**: + - Minimum 8 characters + - Must include digits and special symbols + - Strength visualization with color indication + +### Password Recovery +- Full cycle: + - Reset request → code verification → new password setup +- Data validation at each stage + +## 2. 🧭 Main Interface + +### Navigation +- Transitions between main sections: + - Universities, Exams, Careers, Tutors +- **Side menu with SlideTransition animation** + +### Responsive Design +- Fixes for overflow issues and text wrapping +- **Clickable cards** with visual effects (`InkWell`, hover animations) +- **Mobile layout optimization** + +## 3. 📊 Data Management + +### JSON Handling +- Parsing: + - `professions.json` + - `spheres_stats.json` +- Filtering logic: + - Spheres → Sub-spheres → Professions + +### Global Search +- Dynamic filtering of professions +- **Search result highlighting** + +### Databases +- Initial implementation of the **university list** + +## 4. 📝 Questionnaire + +### Dynamic Loading +- Parsing of DOCX/XML files using `archive` and `xml` packages + +### Question Types +- Single / multiple choice +- Scales (1–5 / 1–7) +- Text fields (e.g., "Other") + +### Validation +- Required field checks +- Smart suggestions +- Default values for sliders + +## 5. 🎯 Recommendation Page + +### Display +- **Large cards** for top 3 recommendations +- **Compact adaptive cards** for the rest +- Sections: + - Pros + - Cons + - Description +- **Color-coded blocks** +- **Field mapping** using `subsphere` + +## 6. 🗂️ Profession Navigation + +### Hierarchical Structure +- Spheres → Sub-spheres → Professions +- **Parameterized navigation** + +### Detailed View +- Unified `ProfessionCard` component +- Section-based content layout +- **Bulleted lists** for key characteristics + +## 7. ⚙️ Technical Solutions + +### State & Animations +- State management via `StatefulWidget` / `setState()` +- Smooth transitions, hover animations + +### Optimization +- **Data preloading** +- **JSON caching** +- **Dynamic lists** via `ListView.builder` + +## 8. 🌐 Localization + +- `app_localizations_en.dart`: English translations added +- `app_localizations_ru.dart`: Russian translations added + +--- + +# 🟦 Backend + +### 1. 🔐 **User Authentication and Login** +- Secure sign-in and authentication flow for users + +### 2. 🧭 **Data Storage in MongoDB** +- Persistent storage of specific user or app data using MongoDB + +### 3. 📊 **Data Storage in PostgreSQL** +- Relational data storage for structured information + +### 4. 📝 **Access and Refresh Tokens** +- Token-based authentication for secure session management + +### 5. 🗂️ **Local Data Storage with SharedPreferences** +- Lightweight key-value storage for client-side data persistence + +### 6. 🎯 **Secure Token Storage on Client** +- Storing access and refresh tokens using secure storage mechanisms + +### 7. ⚙️ **Client-Side University Data as Files** +- University data stored locally on the client as static files + +### 8. 🌐 **Multiple API Endpoints for Communication** +- RESTful endpoints for structured client-server interaction + +### 9. 🔐 **Access Token Refresh Flow** +- Automatic renewal of expired access tokens using refresh tokens + +### 10. 🧭 **Backend Dockerization** +- Containerized backend services using Docker + +### 11. 📊 **Initial Data Loading on Backend Startup** +- Automated import of data from files into the database during initialization + +### 12. 📝 **CI/CD Deployment to Public Server** +- Continuous integration and delivery pipeline for deployment to a public IP server + +### 13. 🗂️ Tutor parser +- Automated extraction of tutor information from structured or unstructured sources + +### 14. 🎯 Parallel tutor parsing and MongoDB upload +- Simultaneous parsing and storage of tutor data in MongoDB for performance optimization + +### 15. ⚙️ ML integration with backend +- Connecting machine learning modules to the backend for predictions or intelligent features + +### 16. 🌐 User data tracking and server-side storage +- Secure storage of user-specific data such as progress trackers on the server + +--- + +# 🟥 ML + +### 1. 📊 The code outputs the pros and cons of a suitable profession +### 2. 📝 Writes the percentage of match +### 3. 🎯 Displays a description of the profession, the sphere and the subsphere + +--- + +# Tech stack + +# 🟨 Frontend + +**Main Framework:** +Flutter — cross-platform development for Android, iOS, and Windows. + +## Key Dependencies + +- `percent_indicator`: for displaying progress indicators +- `intl`: for internationalization and localization +- `pin_code_fields`: for PIN code input fields +- `archive` and `xml`: for working with archive files and XML data +- `flutter_secure_storage` and `shared_preferences`: for secure and local data storage +- `cupertino_icons`: for iOS-style icons + +## Development Tools + +- `flutter_test`: for unit and widget testing +- `flutter_lints`: for static code analysis +- `flutter_launcher_icons`: for generating app launcher icons + +## Data & Resources + +- **Static files:** + - JSON files for universities and professions + - DOCX files for tests and documents + - PNG and JPG images for visual assets + +- **Localization:** + Handled using the `intl` package. + +--- + +# 🟦 Backend + +## Programming Languages +- **Go** +- **Dart** +- **Python** + +## Key Libraries and Frameworks + +### Go +- **Web & API:** `net/http`, `encoding/json` +- **Databases:** `database/sql` (for SQL), `mongo-go-driver` (MongoDB), `github.com/lib/pq` (PostgreSQL) +- **Web Scraping:** `github.com/PuerkitoBio/goquery` +- **Security:** `golang.org/x/crypto/bcrypt` +- **Standard Library:** `context`, `log`, `fmt`, `os`, `time`, `errors`, `regexp`, `strings`, `strconv` + + +### Python +- **Web & API:** `json`, `fastapi` + +## Databases + +- **SQL** + - PostgreSQL + - Driver: `github.com/lib/pq` + +- **NoSQL** + - MongoDB + - Driver: `mongo-go-driver` + +## Containerization and Automation + +- **Docker** — containerization of applications +- **Docker Compose** — multi-container orchestration and service management +- **CI/CD** (GitHub Actions / GitLab CI / Jenkins) — automated build, test, and deployment pipelines +- **YAML** — configuration language for Docker Compose and CI/CD workflows +- **Shell scripting** — automation scripts within Dockerfiles and CI/CD pipelines + +--- + +# 🟥 ML + +## Programming Language + +**Python (3.8)** + +**Used for:** +- Core data processing logic +- MBTI type determination (`determine_mbti`) +- Profession scoring (`score_profession_normalized`) +- Recommendation generation (`process_student`) + +**Libraries:** +- `json`: For reading and writing JSON files (e.g., `dataset_career_test.json`, `professions.json`, `profession_recommendations.json`) +- *Potential additional libraries:* + - `pandas`: For working with structured data (students, professions) + - `numpy`: For advanced numeric and statistical operations (e.g., normalization) + +## Data Format + +**JSON** + +**Used for storing:** +- **Student data** (`dataset_career_test.json`): + Includes `mbti_scores`, `subject_scores`, `interests`, `values`, `work_preferences`, and `exclude`. + +- **Profession data** (`professions.json`): + Includes fields like `sphere`, `subsphere`, `name`, `description`, `ege_subjects`, `mbti_types`, `interests`, `values`, `role`, `place`, `style`, `education_level`, `salary_range`, and `growth_prospects`. + +- **Recommendation results** (`profession_recommendations.json`): + Includes `name`, `score`, `positives`, `negatives`, and `description`. + +**Advantages:** +Lightweight, human-readable format ideal for data exchange between systems and easy local processing. + +## Database + +**File-based storage (JSON)** + +**Current implementation:** +All data is stored and managed in JSON files, which is suitable for small-scale projects and local data processing. + +--- + +# Setup instructions + +Clone repository locally: + ```sh + git clone https://github.com/IU-Capstone-Project-2025/Smartify.git + ``` +Starting the app: + ```sh + cd Smartify/frontend + flutter run + ``` + +--- + +# Weekly commitments + +## Individual contribution of each participant + +## 🎨 UX/UI + +Responsible - **Kuchukbaeva Regina** + - Privacy policy page + - Redesign the professions page + - Page with individual profession + +✅ Related artefacts: +- [Figma](https://www.figma.com/design/7D72pnxGyyRk9lh58vzCFY/Smartify?node-id=0-1&p=f&t=ifQCyMjOgBWRaDFr-0) +- [Privacy policy page](https://github.com/IU-Capstone-Project-2025/Smartify/issues/113) + + + +## 💻 Frontend + +Responsible - **Chugaeva Mariia** + +- Custom logo display +- Fixed the main menu page +- Fixed bugs in the questionnaire field +- Updated the recommendations page +- Added the spheres_page.dart page +- Added the subspheres_page.dart page +- Redesigned the professions page has been redesigned +- Updated the design of the cards on all pages +- The application form button is available from each stage of the profession + +✅ Related artefacts: +- [PR](https://github.com/IU-Capstone-Project-2025/Smartify/pull/139) + + +Responsible - **Zakirov Karim** + +- University cards +- Tracker and calendar +- The page with tutors +- Multilingualism +- Dark theme + +✅ Related artefacts: +- [PR](https://github.com/IU-Capstone-Project-2025/Smartify/pull/141) + + + +## 🛠️ Backend + +Responsible - **Mayorov Daniil** +- Documentation for all endpoints in the Swagger +- The ability to save trackers on the server +- The ability to download trackers from the server +- Connected everything to flutter so that everything worked on the application +- Side guides, updated the login logic, now the tokens are still stored on the server before logging in + +✅ Related artefacts: +- [PR](https://github.com/IU-Capstone-Project-2025/Smartify/pull/140) + + +Responsible - **Antipov Alexey** +- Uploading questionnaires to the client +- Visualize which tables we have in PostgreSQL +- Visualize mongodb +- Parsing of tutor profiles + +✅ Related artefacts: +- [PR](https://github.com/IU-Capstone-Project-2025/Smartify/pull/140) + + + +## 🤖 ML + +Responsible - **Andruwenko Valery** + - Added 14 areas of work + - Added sub-spheres for all areas + - 347 professions now, will be increasing + +✅ Related artefacts: +- [PR](https://github.com/IU-Capstone-Project-2025/Smartify/pull/142) + + + +## 📥 Project Management + +Responsible - **Basanov Maxim** + - Establishing communication between each participants in the Telegram + - Emerging problem solving, meetings organization + - GitHub repositories, Backlog and all documentation maintaining + - Demo recording + - This report writing + +✅ Related artefacts: +- [Backlog](https://github.com/orgs/IU-Capstone-Project-2025/projects/2) + + + +## Future plans + +### 🛠️ UX/UI + +- Keep the design of the our project beautiful and modern even after the end of the Capstone + +### 🛠️ Frontend +- According to the Figma-design, keep the frontend-part of the our project beautiful and modern even after the end of the Capstone + +### 🛠️ Backend + +- Maintain the project and deployment in a working state + +### 🛠️ ML + +- Improve MLs metrics +- Expand all DB + + + +## Confirmation of the code's operability + +We confirm that the code in the main branch: +- [+] In working condition. +- [+] Run via docker-compose (or another alternative described in the `README.md`).