Обмен на знания (Knowledge Barter) (Update: The application secured third place in the national Olympiad in which it participated)
- ТЕМА: Knowledge Barter
- АВТОРИ:
Радин Николаев Тихолов
Мартин Мариов Христов
- РЕЗЮМЕ:
- Цели: Предназначението на изготвения продукт е да покаже, че знанието е свободно, но за да получиш достъп до него трябва да положиш усилие. Платформа предоставя лесно и качествено разпространение на знания. Чрез приложението се стремим да улесним възможността потребителите да обменят уроци и курсове, създадени от тях. Потребността от софтуера е също толкова голяма, колкото нуждата от развитие на личността.
Пълноценното използване на приложението започва със създаване на потребителски профил, който дава възможност за създаване и достъпване на съдържание. Ако потребителят успешно реализира урок или курс, получава KBPoints, с които може да закупи други обучения. KBPoints е основната валута на платформата. Съществуващи подобни решения с нашия бизнес модел до момента не са ни известни.
- Основни етапи в реализацията на проекта:
- Зараждане на идеята
- Идентификация на потребностите и определяне на целите
- Взимане на решение за архитектурен дизайн
- Проектиране на изпълнението на задачата и разпределение на ролите
- Синхронна реализация на отделните компоненти на софтуера
- Създаване на автоматизирани тестове за бизнес логиката на приложението
- Пускане на приложението в реална среда
- Логическо и функционално описание на решението:
Приложението използва RESTful уеб архитектура за комуникация между различните си модули. Модулите, от които е изградено са клиентско приложение, базирано на React, сървърно приложение изградено чрез екосистемата на .NET, комуникиращо с MSSQL база от данни, и външни доставчици на уеб услуги като Cloudinary, DropBox, SendGrid и други. Функциите на модулите са:
- Клиентското приложение служи за визуализация и за лесно боравене с функционалностите на продукта.
- Сървърното Web API приложение е изградено чрез ASP.NET Framework и технологии като: Entity Framework Core, AutoMapper, ML.Net, XUnit, Moq. В него е отделена бизнес логиката, която е разпределена в отделни услуги.
- Базата от данни използва MSSQL, следствие от нуждата за релационна връзка между моделите.
- Външните уеб услуги предоставят лесен подход за допълване на нуждата от функционалности.
- Реализация:
Технологичните средства за реализиране на приложението, които използвахме са Visual Studio Enterprise, Visual Studio Code, Microsoft SQL Server Management Studio и GitHub Desktop. Избрали сме ги, защото позволяват удобно писане на код и разработка, имат богат инструментариум, подходящ за такъв тип проект.
- Стартиране, използване и поддръжка:
Стартирането на приложението е изключително лесно, то се изразява в отварянето на хипервръзка (https://knowledge-barter.web.app). Целта ни е лесен достъп дори от най-малките потребители. Използването на платформата се изразява в създаването и достъпването на съдържание. Поддръжката на подобно приложение, ще зависи изцяло от потребителската активност и нужди. Тя ще се осъществява чрез оптимизиране, рефакториране и подобряване на софтуера.
- Заключение:
Основният резултат от разработката е създаване на платформа за лесно и качествено разпространение на знания. Възможностите за развитие и усъвършенстване на приложението са разрастването на екипа, превод и популяризирането.