Skip to content

Образовательная платформа для онлайн-обучения. Front: react ts; back: golang

Notifications You must be signed in to change notification settings

DEPTH-STRIDA/prosto-matika

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎓 Prosto Matika

Образовательная платформа для онлайн-обучения

📸 Скриншоты

Главная страница

Главная страница

Поиск репетиторов

Поиск репетиторов

📋 Содержание

📝 О проекте

Образовательная платформа, которая соединяет учителей и учеников. Система позволяет:

  • Ученикам находить подходящих преподавателей
  • Учителям создавать профессиональные профили
  • Организовывать онлайн-обучение
  • Общаться через встроенный чат
  • Планировать занятия через систему расписания

⬆ Вернуться к содержанию

🛠 Технологии

Backend

  • Go 1.22.0
  • PostgreSQL
  • GORM
  • JWT для аутентификации
  • WebSocket для чата
  • SMTP для регистрации
  • Swagger для API документации

Frontend

  • React 18
  • TypeScript
  • Tailwind CSS
  • Vite
  • React Router
  • Ant Design

🔧 Установка

Предварительные требования

  • Go (версия 1.22.0 или выше)
  • Node.js (версия 18 или выше)
  • PostgreSQL
  • Доступ к SMTP-серверу

Backend

  1. Установите Go:

    # Скачайте с официального сайта
    https://golang.org/dl/
  2. Установите Swag для документации API:

    go install github.com/swaggo/swag/cmd/swag@latest
  3. Настройка проекта:

    cd back
    go mod download
  4. Создайте файл .env в директории back/ со следующими параметрами:

    # Конфигурация приложения
    APP_IP=localhost
    APP_PORT=8080
    APP_JWT_SECRET=your_secret_key
    
    # База данных
    DBHOST=localhost
    DBPORT=5432
    DBNAME=your_db_name
    DBUSER=your_db_user
    DBPASS=your_password
    DBSSLMODE=disable
    
    # SMTP
    SMTP_SERVER=smtp.example.com
    SMTP_MAIL_NAME=[email protected]
    SMTP_SSL_PORT=465
    SMTP_PASSWORD=your_password
    SMTP_PAUSE=1000

Frontend

  1. Установите зависимости:

    cd front
    npm install
  2. Запуск в режиме разработки:

    npm run dev
  3. Сборка для продакшена:

    npm run build

🌐 Использование

После установки:

📚 API Документация

Полная документация API доступна через Swagger UI после запуска сервера по адресу: http://localhost:8080/swagger/index.html

⬆ Вернуться к содержанию

Описание параметров .env

Конфигурация веб-приложения

APP_IP=localhost         # IP адрес сервера
APP_PORT=8080           # Порт сервера
APP_URL=http://localhost:8080  # Полный URL сервера
APP_JWT_SECRET=your_secret_key # Секретный ключ для JWT токенов

Конфигурация базы данных

DBHOST=localhost        # Адрес сервера БД
DBPORT=5432            # Порт PostgreSQL (стандартный: 5432)
DBNAME=your_db_name    # Имя базы данных
DBUSER=your_db_user    # Имя пользователя БД
DBPASS=your_password   # Пароль пользователя БД
DBSSLMODE=disable      # Режим SSL подключения к БД

Конфигурация SMTP

SMTP_SERVER=smtp.example.com    # Адрес SMTP сервера
SMTP_MAIL_NAME=[email protected]   # Email отправителя
SMTP_SSL_PORT=465              # SSL порт SMTP сервера
SMTP_PASSWORD=your_password # Пароль приложения для SMTP
SMTP_PAUSE=1000                # Пауза между отправками писем (мс)

Конфигурация кэша авторизации

AUTH_TIME_TO_LIVE=15      # Время жизни кэша (минуты)
AUTH_CLEANUP_INTERVAL=30  # Интервал очистки кэша (минуты)

Кэш используется для временного хранения данных пользователей в процессе регистрации:

  • При начале регистрации данные пользователя сохраняются в кэш
  • На указанную почту отправляется код подтверждения
  • Код действителен в течение времени жизни кэша (15 минут)
  • После успешного подтверждения кода данные удаляются из кэша и сохраняются в БД

Система очистки кэша:

  • Каждые 30 минут запускается процесс очистки просроченных записей
  • Если запрашивается просроченная запись до момента очистки, она будет удалена и доступ к ней будет закрыт
  • Это обеспечивает как автоматическую очистку устаревших данных, так и немедленную реакцию на попытку использования просроченных записей

About

Образовательная платформа для онлайн-обучения. Front: react ts; back: golang

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages