DevsHub — платформа для разработчиков и смежных специалистов, где можно учиться, делиться проектами, находить единомышленников и вдохновляться чужими идеями.
DevsHub создан для тех, кто делает первые шаги в разработке или уже имеет опыт и хочет развиваться дальше. Платформа объединяет инструменты для обучения, портфолио и поиска команды в одном месте.
- Проекты — создавай красивое портфолио с помощью встроенного WYSIWYG-редактора или вдохновляйся проектами других участников
- Карточки и колоды — учись с помощью интервального повторения или экспортируй материалы в Anki
- Поиск — находи проекты, карточки и людей для обучения и совместной работы
- Командная работа — объединяйся с другими разработчиками и создавай проекты вместе
- Статистика — отслеживай прогресс обучения и делись достижениями на Codewars
- API — интегрируй DevsHub в свои приложения и автоматизируй процессы
- Регистрация и вход через стандартный и кастомный бэкенд (email / password)
- Авторизация на основе сессий (веб-интерфейс) и JWT-токенов (API)
- Восстановление пароля через email
- Аватарка профиля с автоматической генерацией миниатюр
- Профиль пользователя со статистикой карточек, колод и проектов
- Привязка аккаунта Codewars — статистика подтягивается через публичный API
- Создание собственных карточек
- Сохранение понравившихся карточек других пользователей
- Экспорт карточек для импорта в Anki
- Создание колод из своих и сохранённых карточек
- Сохранение чужих колод
- Изучение колод с алгоритмом интервального повторения SM-2
- Экспорт целых колод для импорта в Anki
- Добавление проектов с названием, описанием, обложкой и галереей изображений
- WYSIWYG-редактор для описания проектов
- Поиск и сортировка карточек, колод, проектов и пользователей
- RESTful API на базе Django REST Framework
- Версионирование API (текущая версия:
v1) - Аутентификация через JWT-токены
Примеры эндпоинтов:
| Метод | Endpoint | Описание |
|---|---|---|
GET |
api/v1/cards/ |
Список карточек |
POST |
api/v1/cards/ |
Создание карточки (question, answer) |
GET |
api/v1/cards/{card_id}/ |
Получение карточки |
GET |
api/v1/cards/{card_id}/export/ |
Экспорт карточки |
POST |
api/v1/cards/{card_id}/toggle_save/ |
Сохранить / убрать карточку |
| Категория | Технологии |
|---|---|
| Backend | Python, Django, Django REST Framework |
| Frontend | npm, TailwindCSS (адаптивный дизайн) |
| База данных | PostgreSQL |
| Очереди и кэш | Celery, Celery Beat, RabbitMQ, Redis |
| Инфраструктура | Docker, Docker Compose, Gunicorn, Nginx |
| Тесты | UnitTest |
Убедитесь, что на вашей машине установлен Docker с поддержкой Docker Compose. Проверить можно командой:
docker compose version1. Склонируйте репозиторий
git clone https://github.com/romanovsqd/devs-hub-python-django.git
cd devs-hub-python-django/2. Настройте переменные окружения
cp devshub_project/.env.example devshub_project/.envОткройте файл .env и заполните необходимые значения. По-умолчанию указаны тестовые значения, можете запустить проект с ними.
3. Соберите образы и запустите контейнеры
docker compose up --build4. Примените миграции и соберите статику
После того как все контейнеры поднялись, выполните в отдельном терминале:
docker exec -it devshub-app python manage.py migrate
docker exec -it devshub-app python manage.py collectstatic --no-input5. Для локальной разработки установите зависимости
cd devshub_project
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
npm installзапустите Tailwind CSS CLI для сборки CSS.
npx @tailwindcss/cli -i ./static/src/input.css -o ./static/css/main.css --watch6. Готово
Откройте http://127.0.0.1 в браузере.
Если есть вопросы или предложения — буду рад обратной связи.
Telegram: @romanovsqd e-mail: romanovsqd@gmail.com