diff --git a/content/docs/2025/Smartify/week3.md b/content/docs/2025/Smartify/week3.md new file mode 100644 index 000000000..069c4f7af --- /dev/null +++ b/content/docs/2025/Smartify/week3.md @@ -0,0 +1,209 @@ +--- +title: "Week #3" +--- + +# **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 - [Google Disk](https://drive.google.com/file/d/151nhpK6KhIyqQk9jXJx20fANeS7_gvnI/view) + +# Weekly commitments + +## Individual contribution of each participant + +## 🎨 UX/UI + +Responsible - **Kuchukbaeva Regina** + - The career guidance test page + - User profile page + - The Π•Π“Π­ preparation tracker page + +βœ… 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 + +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 + +βœ… Related artefacts: +- [PR](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 + - 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 + +βœ… Related artefacts: +- [PR](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 questionnaire among schoolchildren + +βœ… 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 + +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 + + - 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 +- 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 + + - 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 + +### πŸ› οΈ 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`). 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`). 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`). 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`).