Небольшой, но активно используемый книжный классифайд, запущенный в 2012-м году. Ежедневно десятки людей публикуют и находят новые книги. Проект написан давно, и умышленно оставлен почти в первозданном виде, чтобы было что улучшать и исправлять.
Улучшая проект, ты нарабатываешь скилл, репутацию и строчки в резюме!
Из технических решений тут есть: полнотекстовый поиск, полуавтоматическое утягивание базы книжек и обложек с Озона, добавление нового объявления в один клик, отправка сообщений продавцам на почту, немного кэширования.
Проект выложен в open source с целью привлечения всех неравнодушных к развитию проекта. Сделано в рамках программы стажировки «Хорошего программиста». Как поучаствовать в проекте — читай в разделе ниже.
Автор проект Михаил Бутлицкий, о правах на использование кода в конце. Вопросы — на почту mbutlitsky+github@gmail.com
Проект пока работает на Ruby 2.1.5, Rails 3, Postgres 9.6 и живет по адресу azbuker.ru. Для локальной работы и тестирования тоже нужен постгрес.
Установить и инициализировать (крайне желательно с локалью ru_RU.UTF-8) Postgres не ниже 9.4
На маке есть чудный Postgres.app, на линуксе — смотрите наши уроки раз и два,
Если вы на Windows — сперва изучите это, потом это, и напоследок это.
С помощью RBENV/RVM установить Ruby 2.1.5
- Скачиваем код
bundle install
bundle exec rake db:migrate
- Делаем свои файлы
.env
иconfig/database.yml
аналогично примерам .env
заполняем сразу, конфиг базы — след. шаг
- Следуем инструкции из комментариев файла
config/database.example.yml
- После создания баз — создаем свою копию
config/database.yml
- Убеждаемся, что локально есть контакт
bundle exec rails c
В принципе можно запускать и играться локально, но можно накидать немножко обложек из Озона.
В корне проекта лежит небольшой фрагмент боевой базы ozbooks.zip
.
После распаковки надо скормить его в вашу дев. базу.
psql -f (путь к файлу azbuker_oz_books.sql) (имя вашей dev базы азбукера)
После чего в автосаджесте при добавлении нового лота можно искать книги например Стивен и Томас
Изучите deploy.rb и Capfile. Деплоить на свой хостинг есть смысл для тестов только если хотите мигрировать на новые рельсы и новый капистрано.
Приглашаются начинающие и опытные разработчики. Пока все желающие, но приоритет у студентов и выпускников наших интенсивов по Ruby on Rails.
Приглашаются и НЕ программисты (маркетологи, продуктологи, любители книг) — хорошие бизнес решения с удовольствием внедрим, а если решения принесут деньги, то и поделимся.
Основной ваш вклад в проект — пулл-реквест с полезным кодом или Issue (https://github.com/aristofun/azbuker/issues) если это не связанное с кодом улучшение.
Официальный слак: http://bit.ly/azbukerslack
Внимание, тут вас не будут учить программировать (для этого есть курсы). Тут вы должны приносить пользу.
Задачи для разработчиков есть на любой вкус и скилл. Идеи по развитию самого продукта — тоже велкам. Это не проект для подражания, но проект для улучшения. Здесь полно проблем в коде, но проект живет и приносит пользу.
А значит ваш труд по улучшнию проекта нужен людям. И главное — каждая активность это хорошая строчка в резюме.
- Документирование проекта (вики — как работает сбор обложек с озона, какие есть кастомные rake таски, диаграмма зависимостей между моделями)
- Перевод документации (вот этого ридми например) на английский
- Исправление кодстайла и мелких ошибок, некрасивостей в коде (тысячи их!)
- Комментирование особо сложных и опасных мест в коде (такого тоже полно)
- Рефакторинг и упрощение тестов
- Написание дополнительных тестов
- Миграция на свежие Rails, свежие капистрано и пр. (глобальная и крутая для скилла задача)
- Автоматизация (или переделка) импорта свежих озоновских книжек
- Рефакторинг кода, избавление от костылей и code smell
- Выделение Service Objects и отделение логики обработки объявлений от веб-представлений
- Миграция на последний Bootstrap
- Избавление от старой админки (прикручивание новой?)
- Поиск и исправление уязвимостей в коде
Код можно использовать только в личных, учебно-позновательных целях и для развития данного проекта. Использование кода или его частей в других проектах разрешается только с явного согласия автора данного репозитория.