1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/lc-soft-GitDigger

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Гитдиггер

Краткое описание

Сообщество, созданное для разработчиков с открытым исходным кодом, помогает им находить интересные проекты и актуальные новости. Сообщество призвано привлекать больше участников в проекты с открытым исходным кодом.

Проект всё ещё находится в разработке, многие функции не реализованы. Если вы опытный разработчик на Python, вы можете предоставить техническую поддержку проекту, включая, но не ограничиваясь:

  • проектирование структуры базы данных;
  • оптимизация производительности;
  • соблюдение стандартов кодирования;
  • планирование модулей;
  • интернационализация.

Потребности и цели

Как обычный разработчик, в свободное время вы, возможно, хотите посмотреть, что делают другие люди, расширить свой кругозор. Например, узнать, какой код они пишут, какие проблемы обсуждают (Issues), какие интересные проблемы и комментарии к ним есть, какие проекты выпустили новые версии и т. д. Для тех, кто имеет богатый опыт в определённой области, может быть интересно узнать, сталкиваются ли проекты с проблемами, которые они могут решить. Такие платформы, как GitHub, сосредоточены на управлении исходным кодом и предоставляют ограниченные средства продвижения для проектов с открытым исходным кодом. Обычным пользователям может быть сложно найти интересующие их проекты и разработчиков. А новостные сайты с открытым исходным кодом быстро теряют актуальность, и новые обновления могут затеряться среди большого количества информации.

Как автор или сопровождающий проекта с открытым исходным кодом, ваше время и энергия ограничены. Иногда вы тратите много времени на мелкие проблемы, такие как исправление различных ошибок, добавление различных функций. Со временем работа над подобными задачами может стать утомительной, но необходимой. Однако это может замедлить разработку основных задач и отнять силы. Когда возникают более серьёзные проблемы, вы хотели бы получить техническую помощь, например:

  • Есть ли лучший способ реализовать этот код?
  • Какие ресурсы можно использовать для реализации этой функции?
  • Как оптимизировать структуру данных и алгоритм для повышения производительности?
  • Как лучше всего перестроить код?
  • Как правильно назвать идентификаторы?
  • Как спроектировать структуру каталогов?
  • Как сделать код более простым и читаемым?
  • На что следует обратить внимание при работе с кодом?
  • Как написать хороший README.md?

Поиск соответствующей информации может занять много времени, и вы можете не найти ответ. Обращение на некоторые сайты вопросов и ответов требует подробного описания проблемы и, возможно, предоставления минимального примера. Это также может занять много времени и не привести к результату. Это касается только разработки. Для обычных разработчиков, независимо от того, насколько часто обновляется проект, никто не узнает о нём, если вы не будете активно его продвигать. Обычно продвижение ограничивается публикацией новостей о выпусках на крупных платформах, но эффект длится недолго, и через пару недель проект снова остаётся незамеченным.

Для решения этих проблем необходима платформа, которая могла бы:

  • собирать информацию о проектах с открытым исходным кодом, включая проблемы (Issues), запросы на вытягивание (Pull Requests), комментарии и новости о выпусках (Releases), чтобы пользователи могли просматривать её;
  • показывать проекты с открытым исходным кодом и связанные с ними события, чтобы пользователи могли легко находить активные проекты и узнавать, чем занимаются другие;
  • позволять авторам проектов отмечать некоторые проблемы как «нуждающиеся в помощи», чтобы привлечь больше внимания и получить помощь от опытных людей.

Технологический стек

Серверная часть:

  • сервер: Nginx;
  • язык программирования: Python;
  • веб-фреймворк: Flask;
  • база данных: PostgreSQL, Redis;
  • очередь задач: Celery.

Клиентская часть:

  • библиотека: jQuery;
  • UI-библиотека компонентов: Bootstrap;
  • препроцессор CSS: Sass;
  • инструмент сборки: Webpack;
  • особенности: адаптивный дизайн.

Чтобы сократить время разработки и сложность проекта, сайт использует серверный рендеринг в качестве основного метода отображения страниц, даже если автор является фронтенд-разработчиком. Автор не планирует тратить время на разделение передней и задней части, одностраничные приложения и другие технологии, если только кто-то не возьмёт на себя долгосрочную ответственность за разработку задней части проекта.

Связанные веб-сайты

CodeTriage — бесплатные инструменты сообщества для участия в проектах с открытым исходным кодом.

Установка и настройка

Зависимости GitDigger зависит от следующих программ:

  • Flask — микрофреймворк для Python.
  • Flask-Script — расширение Flask для написания внешних скриптов для приложений Flask.
  • Flask-SQLAlchemy — добавляет поддержку SQLAlchemy во Flask.
  • Flask-Migrate — миграции баз данных SQLAlchemy для приложений Flask с использованием Alembic.
  • Flask-Login — управление пользовательскими сеансами во Flask.
  • Flask-Paginate — поддержка пагинации для Flask.
  • Flask-WTF — простая интеграция Flask и WTForms, включая CSRF, загрузку файлов и интеграцию Recaptcha.
  • GitHub-Flask — расширение Flask для аутентификации пользователей через GitHub и выполнения запросов к API.
  • GitHub-Webhook — фреймворк для написания вебхуков для GitHub на Python.
  • Psycopg2 — адаптер базы данных PostgreSQL для языка программирования Python.
  • PostgreSQL — самая современная база данных с открытым исходным кодом в мире.
  • NodeJS — среда выполнения JavaScript, построенная на движке JavaScript Chrome V8.
  • Redis — база данных в памяти, сохраняемая на диске.
  • Celery — асинхронная очередь задач/очередь заданий, основанная на распределённой передаче сообщений.

Пользователи Linux могут установить эти зависимости напрямую, запустив скрипт setup.sh: sh ./setup.sh

Конфигурация В каталоге config хранятся файлы конфигурации, которые необходимо настроить в соответствии с вашей ситуацией:

  • github.py — информация о приложении GitHub;
  • database.py — конфигурация базы данных.

Вы можете обратиться к файлам .example для конкретных примеров. Рекомендуется скопировать их и удалить суффикс .example.

Сервер Если вы хотите развернуть этот сайт в производственной среде, выполните следующие шаги:

  1. Измените файл config/nginx/sites-avaliable/gitdigger.com.conf, заменив пути на ваши реальные пути. Затем скопируйте каталог config/nginx в каталог конфигурации nginx: cp -r config/nginx/* /etc/nginx
  2. Создайте символическую ссылку для включения этого файла конфигурации: ln -s /etc/nginx/sites-available/gitdigger.com.conf /etc/nginx/sites-enabled/gitdigger.com.conf
  3. Измените config/uwsgi.ini, заменив пути на ваши реальные пути, а затем запустите службу uwsgi: uwsgi --ini config/uwsgi.ini

База данных Например, для PostgreSQL сначала создайте пользователя gitdigger: sudo -u postgres Создание пользователя gitdigger

createuser gitdigger -P

Создание базы данных для пользователя gitdigger:

sudo -u postgres createdb -O gitdigger gitdigger_development

Создание файла миграции и обновление базы данных:

pipenv run python manage.py db migrate pipenv run python manage.py db upgrade

Задачи очереди

celery worker -A app.worker -l info celery beat -A app.worker

Ресурсы

Установка пакетов NodeJS:

npm install

Сборка ресурсов, таких как CSS, JavaScript и другие:

npm run build

Запуск

Перед запуском убедитесь, что серверы PostgreSQL и Redis запущены. Затем выполните следующую команду для запуска основной программы сайта:

pipenv run python main.py

Введение

Сообщество для обсуждения технических вопросов открытых проектов, которое помогает разработчикам находить интересные открытые проекты и актуальные новости по теме. Развернуть Свернуть
AGPL-3.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/lc-soft-GitDigger.git
git@api.gitlife.ru:oschina-mirror/lc-soft-GitDigger.git
oschina-mirror
lc-soft-GitDigger
lc-soft-GitDigger
master