{"id":21393784,"url":"https://github.com/424nkita-csharsfta4/skillwave","last_synced_at":"2026-04-14T10:32:33.285Z","repository":{"id":213339290,"uuid":"730830240","full_name":"424Nkita-Csharsfta4/SkillWave","owner":"424Nkita-Csharsfta4","description":"SkillWeave - это мобильное приложение с  обучающими  курсами","archived":false,"fork":false,"pushed_at":"2024-03-16T13:33:20.000Z","size":535,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-16T14:21:35.555Z","etag":null,"topics":["api","backend-api","bloc","csharp","dart","fastapi","figma","flutter","material-design","mobile-development","moldova","nodejs","rest-api","supabase","tiraspol","udemy-course","ui","uml-diagram","ux"],"latest_commit_sha":null,"homepage":"https://65fa0a62568faa25891ba8e2--scintillating-kulfi-d4afe3.netlify.app/","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/424Nkita-Csharsfta4.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-12-12T19:08:48.000Z","updated_at":"2024-04-08T14:53:19.000Z","dependencies_parsed_at":null,"dependency_job_id":"191b54f3-7bd6-4ee9-9175-46d675bdd5a2","html_url":"https://github.com/424Nkita-Csharsfta4/SkillWave","commit_stats":null,"previous_names":["424nkita-csharsfta4/skillwave"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/424Nkita-Csharsfta4/SkillWave","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/424Nkita-Csharsfta4%2FSkillWave","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/424Nkita-Csharsfta4%2FSkillWave/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/424Nkita-Csharsfta4%2FSkillWave/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/424Nkita-Csharsfta4%2FSkillWave/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/424Nkita-Csharsfta4","download_url":"https://codeload.github.com/424Nkita-Csharsfta4/SkillWave/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/424Nkita-Csharsfta4%2FSkillWave/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31793212,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-14T02:24:21.117Z","status":"ssl_error","status_checked_at":"2026-04-14T02:24:20.627Z","response_time":153,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","backend-api","bloc","csharp","dart","fastapi","figma","flutter","material-design","mobile-development","moldova","nodejs","rest-api","supabase","tiraspol","udemy-course","ui","uml-diagram","ux"],"created_at":"2024-11-22T14:13:19.526Z","updated_at":"2026-04-14T10:32:33.271Z","avatar_url":"https://github.com/424Nkita-Csharsfta4.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"\r\n# SkillWave\r\n\r\n\u003cimg style=\"width:350px;\" src=\"https://github.com/424Nkita-Csharsfta4/SkillWave/assets/103760832/e1670d51-5fd5-463a-b19e-85168e0980c0\"/\u003e\r\n\r\n\u003cnav\u003e\r\n    \u003cul style=\"list-style-type: none; padding: 0;\"\u003e\r\n        \u003cli\u003e\u003ca style=\"text-decoration: none; color: black; font-family: 'Poppins', sans-serif;\" href=\"#description\"\u003eОписание\u003c/a\u003e\u003c/li\u003e\r\n        \u003cli\u003e\u003ca style=\"text-decoration: none; color: black; font-family: 'Poppins', sans-serif;\" href=\"#technologies\"\u003eСтек технологий\u003c/a\u003e\u003c/li\u003e\r\n        \u003cli\u003e\u003ca style=\"text-decoration: none; color: black; font-family: 'Poppins', sans-serif;\" href=\"#features\"\u003eФункциональные возможности\u003c/a\u003e\u003c/li\u003e\r\n        \u003cli\u003e\u003ca style=\"text-decoration: none; color: black; font-family: 'Poppins', sans-serif;\" href=\"#functionality\"\u003eФункционал\u003c/a\u003e\u003c/li\u003e\r\n        \u003cli\u003e\u003ca style=\"text-decoration: none; color: black; font-family: 'Poppins', sans-serif;\" href=\"#additional\"\u003eДополнительные возможности\u003c/a\u003e\u003c/li\u003e\r\n        \u003cli\u003e\u003ca style=\"text-decoration: none; color: black; font-family: 'Poppins', sans-serif;\" href=\"#community\"\u003eРазвитие сообщества\u003c/a\u003e\u003c/li\u003e\r\n        \u003cli\u003e\u003ca style=\"text-decoration: none; color: black; font-family: 'Poppins', sans-serif;\" href=\"#mentoring\"\u003eПрограмма менторства\u003c/a\u003e\u003c/li\u003e\r\n        \u003cli\u003e\u003ca style=\"text-decoration: none; color: black; font-family: 'Poppins', sans-serif;\" href=\"#integration\"\u003eИнтеграция с индустрией\u003c/a\u003e\u003c/li\u003e\r\n        \u003cli\u003e\u003ca style=\"text-decoration: none; color: black; font-family: 'Poppins', sans-serif;\" href=\"#perspectives\"\u003eПерспективы\u003c/a\u003e\u003c/li\u003e\r\n        \u003cli\u003e\u003ca style=\"text-decoration: none; color: black; font-family: 'Poppins', sans-serif;\" href=\"#ui-ux\"\u003eUI/UX\u003c/a\u003e\u003c/li\u003e\r\n        \u003cli\u003e\u003ca style=\"text-decoration: none; color: black; font-family: 'Poppins', sans-serif;\" href=\"#bloc-cubit\"\u003eBloc/Cubit\u003c/a\u003e\u003c/li\u003e\r\n        \u003cli\u003e\u003ca style=\"text-decoration: none; color: black; font-family: 'Poppins', sans-serif;\" href=\"#supabase\"\u003eSupaBase\u003c/a\u003e\u003c/li\u003e\r\n        \u003cli\u003e\u003ca style=\"text-decoration: none; color: black; font-family: 'Poppins', sans-serif;\" href=\"#patern\"\u003eПатерны\u003c/a\u003e\u003c/li\u003e\r\n         \u003cli\u003e\u003ca style=\"text-decoration: none; color: black; font-family: 'Poppins', sans-serif;\" href=\"#arh\"\u003eАрхетектура\u003c/a\u003e\u003c/li\u003e\r\n        \u003cli\u003e\u003ca style=\"text-decoration: none; color: black; font-family: 'Poppins', sans-serif;\" href=\"#visualization\"\u003eВизуализация\u003c/a\u003e\u003c/li\u003e\r\n        \u003cli\u003e\u003ca style=\"text-decoration: none; color: black; font-family: 'Poppins', sans-serif;\" href=\"#conclusion\"\u003eЗаключение\u003c/a\u003e\u003c/li\u003e\r\n    \u003c/ul\u003e\r\n\u003c/nav\u003e\r\n\r\n\r\n\r\n\r\n\r\n## Описание\r\n\r\n\u003cdiv id=\"description\"\u003e\r\nSkillwave - это мобильное приложение обучающей платформы, предназначенной для людей, желающих расширить свои знания и навыки.\r\nВ приложении доступны разнообразные курсы, аналогичные тем, что представлены на платформах Stepik и Udemy.  \r\n\u003c/div\u003e\r\n\r\n\r\n\r\n\r\n## Стек технологий\r\n\u003cdiv id=\"technologies\"\u003e\r\n\u003cdiv style=\"display:flex; background-color:white;\"\u003e\r\n\u003cimg style=\"width:70px;\" src=\"https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/dart/dart-original-wordmark.svg\" /\u003e\r\n\u003cimg style=\"width:70px;\" src=\"https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/flutter/flutter-original.svg\" /\u003e\r\n\u003cimg style=\"width:70px;\" src=\"https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/nodejs/nodejs-original-wordmark.svg\" /\u003e\r\n\u003cimg style=\"width:70px;\" src=\"https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/supabase/supabase-original-wordmark.svg\" /\u003e\r\n\u003c/div\u003e\r\n\r\n\r\nSkillwave разработан с использованием следующих технологий:\r\n\r\n- Dart/Flutter для мобильной разработки\r\n- Bloc для управления состоянием\r\n- Supabase для базы данных\r\n- Node.js для backend\r\n- UI/UX\r\n\u003c/div\u003e\r\n\u003cimg src=\"https://media0.giphy.com/media/v1.Y2lkPTc5MGI3NjExMWlwcXh5cmoweTd2dm9sajkzemMzazFyZDZ6NzQxeWFhbmkyYndocyZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/kQ3FSVoJrkYWk/giphy.gif\"/\u003e\r\n\r\n\r\n## Функциональные возможности\r\n\r\n### Плюсы\r\n\u003cdiv id=\"features\"\u003e\r\n- Доступ к широкому выбору обучающих курсов\r\n- Интерактивный и дружественный пользовательский интерфейс\r\n- Возможность оформления подписки для получения дополнительных материалов и функций\r\n\r\n### Минусы\r\n\r\n- Возможны ограничения доступа к некоторым курсам без подписки\r\n- Требуется подключение к интернету для загрузки курсов и обновлений\r\n\u003c/div\u003e\r\n\r\n## Функционал\r\n\u003cdiv id=\"functionality\"\u003e\r\n- Регистрация и аутентификация пользователей\r\n- Просмотр информации о каждом курсе, включая описание, автора, рейтинг и отзывы\r\n- Возможность просмотра примеров кода из курсов\r\n- Поддержка различных форматов обучения, включая видеоуроки, статьи и задания\r\n- Возможность обновления профиля пользователя\r\n- Механизм оплаты подписки и управления ею\r\n\u003c/div\u003e\r\n\u003cimg src=\"https://media4.giphy.com/media/v1.Y2lkPTc5MGI3NjExazU1aGJrbW5qY3JreWl1OGVrMXlqNzR4YWFpM3dnemgwMzdsODEyMiZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/11KzOet1ElBDz2/giphy.gif\"/\u003e\r\n\r\n## Дополнительные возможности\r\n\u003cdiv id=\"additional\"\u003e\r\nАдаптивный дизайн\r\n- Skillwave обеспечивает отличное пользовательское взаимодействие на устройствах с разными разрешениями экрана, благодаря своему адаптивному дизайну.\r\n\u003c/div\u003e\r\n\r\n## Развитие сообщества\r\n\u003cdiv id=\"community\"\u003e\r\n- Партнерство с образовательными учреждениями\r\n- Skillwave может установить партнерские отношения с университетами и другими образовательными учреждениями для предоставления доступа к их курсам и сертификатам через приложение.\r\n\u003c/div\u003e\r\n\r\n\u003cimg src=\"https://media3.giphy.com/media/v1.Y2lkPTc5MGI3NjExcHV4c29oaDJsb21xMnJ3N3ZpMHF2ZmkxYXRwNXB6Z2dnc2UwNnkzMyZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/Ejw31fJJkDfQ4/giphy.gif\"/\u003e\r\n\r\n## Программа менторства\r\n\u003cdiv id=\"mentoring\"\u003e\r\n- Платформа может запустить программу менторства, где опытные пользователи могут помогать новичкам в освоении новых тем и консультировать их по вопросам обучения.\r\n\u003c/div\u003e\r\n\r\n## Интеграция с индустрией\r\n\u003cdiv id=\"integration\"\u003e\r\n- Skillwave может предложить интеграцию с компаниями и предприятиями, чтобы предоставлять им возможность создания собственных обучающих материалов или проведения корпоративного обучения через приложение.\r\n\u003c/div\u003e\r\n\r\n## Перспективы\r\n\u003cdiv id=\"perspectives\"\u003e\r\n- Skillwave постоянно развивается и стремится предоставить пользователям ещё больше возможностей для обучения и саморазвития.\r\n- С постоянным добавлением новых курсов, улучшением функциональности и расширением сообщества пользователей, приложение продолжает быть лидером в области онлайн-обучения.\r\n\u003c/div\u003e\r\n\r\n\u003cimg src=\"https://media0.giphy.com/media/v1.Y2lkPTc5MGI3NjExNjBsbHVqNDh5NGl5eWQ3ZmRjNGpod2hmZmk0ZTN3NmlibzJsemtieCZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/jIqh3ym2s7GU/giphy.gif\"/\u003e\r\n\r\n## UI/UX\r\n\u003cdiv id=\"ui-ux\"\u003e\r\n- Дизайн в Figma\r\n- Скоро ссылку загружу\r\n\u003c/div\u003e\r\n\r\n![image](https://github.com/424Nkita-Csharsfta4/SkillWave/assets/103760832/b8fc6ef7-c444-4215-9dc8-5579ccd9a8ca)\r\n\r\n## Bloc/Cubit\r\n\u003cdiv id=\"bloc-cubit\"\u003e\r\n- Bloc (Business Logic Component) и Cubit - это паттерны управления состоянием в приложениях Flutter,\r\n- которые позволяют эффективно разделять бизнес-логику и пользовательский интерфейс.\r\n- Они обеспечивают чистоту кода, упрощают тестирование и делают приложение более масштабируемым,\r\n- позволяя разработчикам создавать отдельные компоненты для управления состоянием и событиями.\r\n- Использование Bloc/Cubit помогает улучшить архитектуру приложения и делает его более\r\n- поддерживаемым и понятным для разработчиков.\r\n- \u003ca href=\"[https://supabase.com/docs/reference/dart/installing](https://bloclibrary.dev/ru/bloc-concepts/)\"\u003eОсновная дока для работы с Flutter и BLOC\u003c/a\u003e\r\n\u003c/div\u003e\r\n\r\n## SupaBase\r\n\u003cdiv id=\"supabase\"\u003e\r\n- Supabase - это открытая платформа для разработки приложений с базами данных PostgreSQL. \r\n- Supabase предоставляет разработчикам готовое API для работы с базой данных, аутентификацией пользователей и многое другое.\r\n-  Документация по работе с Supabase в Flutter/Dart предоставляет инструкции по настройке подключения к базе данных, выполнению запросов и обработке результатов в мобильных приложениях на Flutter.\r\n-  \u003ca href=\"https://supabase.com/docs/reference/dart/installing\"\u003eОсновная дока для работы с Flutter и Supabase\u003c/a\u003e\r\n\u003c/div\u003e\r\n\r\n![image](https://github.com/424Nkita-Csharsfta4/SkillWave/assets/103760832/3b1c2b08-c0c5-4479-b5fa-36d830b2b300)\r\n\r\n## Патерны\r\n\u003cdiv id=\"#patern\"\u003e\r\n\u003ch1\u003e\r\nПаттерн проектирования — это часто встречающееся решение определённой проблемы при проектировании архитектуры программ.\u003c/h1\u003e\r\n\u003cp\u003e\r\nВ отличие от готовых функций или библиотек, паттерн нельзя просто взять и скопировать в программу.\r\nПаттерн представляет собой не какой-то конкретный код, а общую концепцию решения той или иной проблемы, которую нужно будет ещё подстроить под нужды вашей программы.\r\n\u003c/p\u003e\r\n\u003ch1\u003eПатерны которые используются в проекте\u003c/h1\u003e\r\n\r\n- \u003ch2\u003eАдаптер\u003c/h2\u003e\r\n\r\nАдаптер — это структурный паттерн проектирования, который позволяет объектам с несовместимыми интерфейсами работать вместе.\r\n\r\n- \u003ch2\u003eНаблюдатель\u003c/h2\u003e\r\n\r\nНаблюдатель — это поведенческий паттерн проектирования, который создаёт механизм подписки, позволяющий одним объектам следить и реагировать на события, происходящие в других объектах.\r\n\r\n- \u003ch2\u003eОдиночка\u003c/h2\u003e\r\n\r\nОдиночка — это порождающий паттерн проектирования, который гарантирует, что у класса есть только один экземпляр, и предоставляет к нему глобальную точку доступа.\r\n\r\n- \u003ch2\u003eСтратегия\u003c/h2\u003e\r\n\r\nСтратегия — это поведенческий паттерн проектирования, который определяет семейство схожих алгоритмов и помещает каждый из них в собственный класс, после чего алгоритмы можно взаимозаменять прямо во время исполнения программы.\r\n\r\n- \u003ch2\u003eФасад\u003c/h2\u003e\r\n\r\nФасад — это структурный паттерн проектирования, который предоставляет простой интерфейс к сложной системе классов, библиотеке или фреймворку.\r\n\r\n\u003c/div\u003e\r\n\r\n## Архетектура\r\n\u003cduv id=\"arh\"\u003e\r\n\u003cp\u003eClean Architecture - это методология разработки программного обеспечения, которая ставит целью создание приложений с высокой степенью модульности, гибкости и чистоты кода. В ее основе лежит принцип разделения программы на слои с четкими границами и зависимостями, чтобы уменьшить связанность компонентов и облегчить их замену и модификацию. Главная идея - разделить код на уровни, начиная от внешних интерфейсов и заканчивая внутренней бизнес-логикой, с соблюдением принципов единственной ответственности и инверсии зависимостей. Это помогает создавать более поддерживаемые, тестируемые и масштабируемые приложения.\u003c/p\u003e\r\n\r\n![image](https://github.com/424Nkita-Csharsfta4/SkillWave/assets/103760832/1ff7e045-b617-41a0-951d-a10a52571bee)\r\n\r\n\r\n\u003cp\u003eЧистая архитектура - это концепция построения архитектуры систем, предложенная Робертом Мартином (также известного как \"дядюшка Боб\"). Концепция предполагает построение приложения в виде набора независимых слоёв, что облегчает тестирование, уменьшает связность и делает приложение более простым для понимания.\u003c/p\u003e\r\n\r\n![image](https://github.com/424Nkita-Csharsfta4/SkillWave/assets/103760832/b67ec5b3-0f11-41d3-b44f-694865744c3d)\r\n\r\nПриложение состояло из четырёх слоев:\r\n\r\n - data - слой работы с данными. На этом уровне, например, описываем работу с внешним API.\r\n - domain - слой бизнес-логики.\r\n - internal - слой приложения. На этом уровне происходит внедрение зависимостей.\r\n - presentation - слой представления. На этом уровне описываем UI приложения.\r\n\u003c/div\u003e\r\n\r\n\r\n\r\n## Визуализация\r\n\u003cdiv id=\"visualization\"\u003e\r\n\u003cimg src=\"https://media1.giphy.com/media/v1.Y2lkPTc5MGI3NjExbG95aW11YnlrNXNyYnVlMGN5enRrODhlaWRjY3N0d3l6OWw5bW93YyZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/eemPC4yhITcTm/giphy.gif\"/\u003e\r\n\u003c/div\u003e\r\n\r\n\r\n## Заключение\r\n\u003cdiv id=\"conclusion\"\u003e\r\nSkillwave - это мощный инструмент для тех, кто стремится к саморазвитию и обучению новым навыкам. \r\nБлагодаря его широкому выбору курсов, удобному интерфейсу и разнообразию функциональных возможностей пользователи могут найти именно то, что им нужно для роста и достижения своих целей.\r\n\u003c/div\u003e\r\n\u003cimg src=\"https://media2.giphy.com/media/v1.Y2lkPTc5MGI3NjExb3p6NWxzNGM0MGVjc2Y4cThuMjlzd2pscGxiaXNseXkwOGswaDh0NyZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/anDhBXwgvIa7m/giphy.gif\"/\u003e\r\n\r\n```mermaid\r\ngraph TD\r\n    lib --\u003e bloc\r\n    lib --\u003e course\r\n    lib --\u003e screens\r\n    lib --\u003e services\r\n    lib --\u003e utils\r\n    lib --\u003e json\r\n    lib --\u003e router\r\n    bloc --\u003e onboarding_events.dart\r\n    bloc --\u003e onboarding_states.dart\r\n    bloc --\u003e onboarding_bloc.dart\r\n    course --\u003e local_storage\r\n    course --\u003e model\r\n    course --\u003e udemy_api.dart\r\n    screens --\u003e course_detail_screen.dart\r\n    screens --\u003e dashboard_screen.dart\r\n    services --\u003e udemy_api_service.dart\r\n    utils --\u003e error_handler.dart\r\n    utils --\u003e widgets\r\n    json --\u003e course.json\r\n    router --\u003e router.dart\r\n    router --\u003e screens\r\n    screens --\u003e auntification\r\n    screens --\u003e block\r\n    screens --\u003e login\r\n    screens --\u003e interface\r\n    screens --\u003e model\r\n    screens --\u003e view\r\n    screens --\u003e viewmodel\r\n    screens --\u003e sign\r\n    screens --\u003e onbourding\r\n    screens --\u003e profile\r\n    screens --\u003e update_profile\r\n    screens --\u003e theme\r\n    auntification --\u003e login_state_block.dart\r\n    login --\u003e registration_strategy.dart\r\n    login --\u003e model\r\n    login --\u003e view\r\n    login --\u003e viewmodel\r\n    sign --\u003e sign.dart\r\n    onbourding --\u003e onboarding_screen.dart\r\n    onbourding --\u003e onboarding_screen_1.dart\r\n    profile --\u003e const\r\n    profile --\u003e profile.dart\r\n    profile --\u003e profile_menu.dart\r\n    update_profile --\u003e update_profile.dart\r\n    theme --\u003e theme_switch.dart\r\n    main.dart\r\n\r\n```\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F424nkita-csharsfta4%2Fskillwave","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F424nkita-csharsfta4%2Fskillwave","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F424nkita-csharsfta4%2Fskillwave/lists"}