
๐ Daha: Course Aggregator Platform ๐
Empowering high school students with free access to global learning opportunities ๐
Visit gitlab repo ๐
๐ฅ View Demos
ยท
๐ Report Bug
ยท
๐ก Request Feature
๐ Table of Contents
About The Project
Project Goals
To democratize access to educational resources by aggregating diverse courses for high school students in a free, multi-platform ecosystem. See Project Description for details.
Context Diagram
The context diagram illustrates DAHAโs stakeholders and external systems. ๐ Read more: docs/context-diagram.markdown
Project Description
DAHA is a zero-cost course aggregation platform designed to empower high school students worldwide. It simplifies discovery of vetted educational content through multiple access points while maintaining a unified user experience. The platform centralizes fragmented resources from universities, MOOC platforms, and community initiatives, eliminates access barriers with no subscriptions or paywalls, and adapts to user preferences via web, mobile, and messaging platforms.
๐ Read more: docs/project-description.markdown
Built With
Usage
DAHA offers multiple access points:
- ๐ Frontend: https://daha.linkpc.net/
- ๐ฑ Mini App: https://t.me/daha_DAHA_bot/webapp
- ๐ Admin Panel: https://dahaadmin.vercel.app/ (auth with telegram111)
- โ๏ธ API: https://daha.linkpc.net/api/courses
- ๐ค Bot: Message @bot_Daha_bot with
/start
,/set-filter
, or/webapp
Usage Instruction (Short User Guide)
Welcome to DAHA, your free gateway to global learning opportunities! This guide will help you navigate the platform and make the most of its features.
1. Getting Started
- Registration:
- Click on the "ะั ะพะด" button located in the upper right corner.
- Provide your Telegram username.
- After that, you will receive a 6-digit code via Telegram.
- Use this code to finish the registration.
2. Searching Courses
- Filtering Courses:
- In the middle of the page, you can see many courses provided by different universities or MOOC platforms.
- It may be difficult to sort courses manually by scrolling.
- That's why DAHA provides a set of filters on the left side of the page.
- There are three types of filters: "ะัะตะดะผะตั", "ะฃัะพะฒะตะฝั ัะปะพะถะฝะพััะธ", "ะะปะฐััั":
- ะัะตะดะผะตัั Filter: Choose subjects you are interested in.
- ะฃัะพะฒะตะฝั ัะปะพะถะฝะพััะธ: Choose the difficulty of the course.
- ะะปะฐััั: Choose your current school class level.
-
To reset filters, use the "ัะฑัะพัะธัั ัะธะปัััั" button.
-
Choosing a Suitable Course:
- When filters are applied, start choosing the course.
- Each course widget contains: course name, course date, course description, course link.
- Read course descriptions to choose the most suitable one.
- After choosing the course, click on the "ะกััะปะบะฐ ะฝะฐ ะบััั" button.
๐ Full Guide: docs/usage.markdown
Getting Started
Set up DAHA locally with these steps. Detailed instructions in installation.markdown.
Prerequisites
- Node.js & npm: Latest versions
sh npm install npm@latest -g
- Python 3.8+: For Backend and Bot
- Docker: For containerized deployment
- PostgreSQL: Managed or local setup
- GitLab/Github Access: For repository cloning
Clone Repository
git clone https://gitlab.pg.innopolis.university/daha-40/daha.git
cd daha
Or, if SSH is configured:
git clone git@gitlab.pg.innopolis.university:daha-40/daha.git
Frontend (Vercel)
cd frontend
npm install
npm run start # Test locally
Deploy to Vercel: Connect to GitLab, set base directory frontend/
, build command npm run build
, output build/
.
Mini App (Vercel)
cd mini-app
npm install
npm run dev # Test locally
Deploy to Vercel: Connect to GitLab, set base directory mini-app/
, build command npm run build
, output build/
.
Backend (Cloud.ru VM)
cd backend
docker-compose up --build # Test locally
Roadmap
- [x] โ User site with course browsing, filtering functionalities
- [x] โ Admin app UI/UX with basic Telegram bot
- [x] โ Full stack admin and user app
- [x] ๐ Telegram OAuth for admin/user app
- [ ] ๐ด Full stack Telegram bot
- [ ] ๐ Telegram notifications and additional functionalities
- [ ] Mini-app for in-app course preview
- [ ] Web analytics tools
๐ Full Roadmap: Roadmap Tracker
๐ See Issues: https://gitlab.pg.innopolis.university/daha-40/daha/-/issues
Development
Development processes are documented in CONTRIBUTING.markdown, covering:
- ๐ฟ Git workflow
- ๐ Kanban board
- ๐ Secrets management
Quality Assurance
DAHA ensures high standards through rigorous testing. Details in:
- ๐ docs/quality-assurance/quality-assurance.markdown
- ๐งช docs/quality-assurance/automated-tests.markdown
- ๐ฉโ๐ป docs/quality-assurance/user-acceptance-tests.markdown
- ๐ docs/quality-attribute/quality-attribute-scenarios.markdown
Architecture
DAHAโs microservices architecture ensures scalability. Explore:
- ๐๏ธ docs/architecture/architecture.markdown
- ๐ docs/architecture/static-view.markdown
- ๐ docs/architecture/dynamic-view.markdown
- ๐ docs/architecture/deployment-view.markdown
Build and Deployment
Automated CI/CD pipelines streamline development. See:
- ๐ docs/automation/continuous-integration.markdown
- ๐ docs/automation/continuous-delivery.markdown
Contributors
Weโre grateful to our amazing team members who brought DAHA to life:
- Esdras - Product Owner
- Liubov - Backend Engineer
- Artem - Frontend Developer
- Timofey - Bot Developer
- Sanir - QA Engineer
๐ Contributing Guide: CONTRIBUTING.markdown
License
Distributed under the MIT License. See LICENSE.markdown for details.
Contact
๐ Project Link: https://gitlab.pg.innopolis.university/daha-40/daha
๐ง Email: daha-support@innopolis.university
Acknowledgments
A huge thank you to everyone who supported DAHAโs development:
- Teaching Assistants: For their guidance and feedback throughout the project.
- Course Team: For designing an inspiring curriculum that made DAHA possible.
- GitLab: For hosting our repository.
- Vercel: For seamless Frontend and Mini App deployment.
- Cloud.ru: For reliable Backend and Database hosting.
- React Icons: For enhancing our UI.
- Font Awesome: For beautiful icons.