Skip to content


Daha Logo

๐ŸŒŸ 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
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Development
  6. Quality Assurance
  7. Architecture
  8. Build and Deployment
  9. Contributors
  10. License
  11. Contact
  12. Acknowledgments

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

React FastAPI Python PostgreSQL Docker Vercel Cloud.ru

(back to top)


Usage

DAHA offers multiple access points:

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

(back to top)


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

(back to top)


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

(back to top)


Development

Development processes are documented in CONTRIBUTING.markdown, covering:

  • ๐ŸŒฟ Git workflow
  • ๐Ÿ“Š Kanban board
  • ๐Ÿ”’ Secrets management

(back to top)


Quality Assurance

DAHA ensures high standards through rigorous testing. Details in:

(back to top)


Architecture

DAHAโ€™s microservices architecture ensures scalability. Explore:

(back to top)


Build and Deployment

Automated CI/CD pipelines streamline development. See:

(back to top)


Contributors

Weโ€™re grateful to our amazing team members who brought DAHA to life:

Contributors

  • Esdras - Product Owner
  • Liubov - Backend Engineer
  • Artem - Frontend Developer
  • Timofey - Bot Developer
  • Sanir - QA Engineer

๐Ÿ“– Contributing Guide: CONTRIBUTING.markdown

(back to top)


License

Distributed under the MIT License. See LICENSE.markdown for details.

(back to top)


Contact

๐Ÿ“ Project Link: https://gitlab.pg.innopolis.university/daha-40/daha

๐Ÿ“ง Email: daha-support@innopolis.university

(back to top)


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.

(back to top)