Нам нравится слышать идеи наших пользователей! Это то, что делает этот проект таким великолепным и универсальным. Если у вас есть идея для взноса, пожалуйста, поделитесь ею с нами!
Проект приветствует и зависит от вкладов разработчиков и пользователей из сообщества с открытым исходным кодом. Вклады могут быть сделаны несколькими способами:
- Исправления кода через запросы на слияние
- Улучшения документации
- Отчеты об ошибках и обзоры исправлений
Первые Шаги
- Прочитайте всю эту страницу “сверху вниз”.
- Убедитесь, что у вас есть учетная запись GitHub.
- Представьтесь в чате разработчиков на Discord.
- Посмотрите страницу Открытые Проблемы. Мы облегчили это для новичков с меткой good first issue — это проблемы, которые должны быть относительно легки в решении.
- Развлекайтесь!
Настройка Среды Разработки
Быстрый Старт (Рекомендуется)
🚀 GitHub Codespaces (Самый Простой):
- Нажмите “Code” → “Codespaces” → “Create codespace on [branch]”
- Подождите 2-3 минуты автоматической настройки
- Откройте
http://localhostи войдите сadmin/changeme
🐳 Контейнеры разработки VS Code:
- Установите расширение “Dev Containers” в VS Code
- Откройте этот репозиторий в VS Code
- Нажмите “Reopen in Container” когда будет предложено
- Дождитесь завершения настройки
🔧 DDEV (Локальный Docker):
- Установите DDEV и Docker
- Клонируйте репозиторий и выполните:
git clone https://github.com/ChurchCRM/CRM.git churchcrm cd churchcrm ddev start ddev setup-churchcrm - Откройте https://churchcrm.ddev.site и войдите с
admin/changeme
См. Настройка DDEV ниже для полных деталей и устранения неполадок.
Ручная Настройка
Если вы предпочитаете ручную установку или автоматические опции не работают:
Установка Предварительных Требований:
- Git или GitHub Desktop
- Node.js версия 20+
- Docker
- PHP 8.4+ с расширениями:
bcmath,curl,gd,gettext,iconv,mbstring,mysqli,pdo_mysql,sodium,zip,zlib - Composer (менеджер зависимостей PHP)
Клонирование и Настройка:
git clone https://github.com/your-username/ChurchCRM.git cd ChurchCRM ./scripts/setup-dev-environment.shДоступ к Веб-сайту:
- ChurchCRM: http://localhost/ (
admin/changeme) - MailHog: http://localhost:8025 (тестирование почты)
- Adminer: http://localhost:8088 (администратор БД)
- ChurchCRM: http://localhost/ (
Устранение Неполадок
Распространенные Проблемы:
- Конфликты портов 80: Остановите другие веб-серверы или измените отображение портов Docker
- Ошибка при сборке Docker: Убедитесь, что Docker имеет выделено 4 ГБ+ памяти
- Услуги не запускаются: Выполните
npm run docker:dev:logsдля проверки логов - Тесты не пройдены локально: Используйте
npm run docker:test:rebuildдля чистой среды тестирования - Отсутствуют расширения PHP: Используйте контейнеры Docker — не собирайте локально
- Устаревшая схема БД: Выполните
npm run docker:test:restart:dbдля обновления
Настройка DDEV
DDEV — это локальная среда разработки на основе Docker, которая обеспечивает PHP, MariaDB, Node.js, HTTPS и тестирование электронной почты одной командой.
Предварительные Требования
- Docker Desktop
- DDEV v1.22+
Быстрый Старт
git clone https://github.com/ChurchCRM/CRM.git churchcrm
cd churchcrm
ddev start
ddev setup-churchcrm
ddev launch
Вход: admin / changeme
URLs Сервисов
| Сервис | URL |
|---|---|
| ChurchCRM | https://churchcrm.ddev.site |
| Mailpit | https://churchcrm.ddev.site:8025 |
| MySQL | ddev mysql |
Ежедневный Рабочий Процесс
ddev start # Запуск сервисов
ddev stop # Остановка сервисов
ddev ssh # Доступ к shell
ddev logs # Просмотр логов
Устранение Неполадок DDEV
| Проблема | Решение |
|---|---|
ddev start не работает | Убедитесь, что Docker запущен: docker info |
| Config.php не создан | Выполните ddev exec cp /var/www/html/.ddev/Config.ddev.php /var/www/html/src/Include/Config.php |
| База данных пуста | Переимпортируйте: ddev import-db --file=cypress/data/seed.sql |
Полная документация DDEV: https://ddev.readthedocs.io
Стандарты Разработки
Пользовательский Интерфейс
ChurchCRM использует фреймворк AdminLTE для пользовательского интерфейса. Следуйте этим рекомендациям:
- Ознакомьтесь с AdminLTE
- Держите изменения UI в соответствии с принципами дизайна AdminLTE
- Создавайте модульные и организованные CSS файлы для пользовательских стилей
- Обеспечивайте адаптивный дизайн для всех размеров экрана
Архитектура Slim MVC
Для новых API и страниц следуйте архитектуре Slim MVC (Model-View-Controller).
Тестирование с Cypress
Используйте Cypress для комплексного тестирования:
npm run test # Запуск всех тестов
npm run test:ui # Интерактивное тестирование
Структура тестов:
- Тесты API:
cypress/e2e/api/private/[feature]/[endpoint].spec.js - Тесты UI:
cypress/e2e/ui/[feature]/
Рабочий Процесс Разработки
Ветвление:
git checkout -b feature-nameСтандарты Кода:
- Следуйте существующим стандартам кодирования
- Придерживайтесь руководства стиля в
.github/copilot-instructions.md - Используйте описательные сообщения коммитов
Тестирование:
- Напишите тесты для ваших изменений с помощью Cypress
- Обновляйте документацию по мере необходимости
Процесс запроса на слияние:
git pull origin master git rebase master git push origin feature-name
Стандарты Кодирования
ChurchCRM поддерживает строгие стандарты качества кода:
- ✅ База Данных: ORM Propel обязателен (без сырого SQL)
- ✅ HTML5: Только CSS Bootstrap 4.6.2
- ✅ Сервисы: Бизнес-логика в классах Service
- ✅ PHP 8.4+: Явные типы nullable
- ✅ i18n: Оборачивайте текст UI с
gettext()илиi18next.t()
Для полных стандартов см. .github/copilot-instructions.md
Кодекс Поведения
Пожалуйста, соблюдайте Кодекс Поведения во всех взаимодействиях.
Спасибо за ваш вклад!