Git Product home page Git Product logo

azbuker's Introduction

Книжная доска объявлений

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

Улучшая проект, ты нарабатываешь скилл, репутацию и строчки в резюме!

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

Проект выложен в open source с целью привлечения всех неравнодушных к развитию проекта. Сделано в рамках программы стажировки «Хорошего программиста». Как поучаствовать в проекте — читай в разделе ниже.

Автор проект Михаил Бутлицкий, о правах на использование кода в конце. Вопросы — на почту [email protected]

Установка проекта

Проект пока работает на Ruby 2.1.5, Rails 3, Postgres 9.6 и живет по адресу azbuker.ru. Для локальной работы и тестирования тоже нужен постгрес.

1. Подготовка

Установить и инициализировать (крайне желательно с локалью ru_RU.UTF-8) Postgres не ниже 9.4

На маке есть чудный Postgres.app, на линуксе — смотрите наши уроки раз и два,

Если вы на Windows — сперва изучите это, потом это, и напоследок это.

С помощью RBENV/RVM установить Ruby 2.1.5

2. Код

  • Скачиваем код
  • bundle install
  • bundle exec rake db:migrate
  • Делаем свои файлы .env и config/database.yml аналогично примерам
  • .env заполняем сразу, конфиг базы — след. шаг

3. Данные

  • Следуем инструкции из комментариев файла config/database.example.yml
  • После создания баз — создаем свою копию config/database.yml
  • Убеждаемся, что локально есть контакт bundle exec rails c

В принципе можно запускать и играться локально, но можно накидать немножко обложек из Озона. В корне проекта лежит небольшой фрагмент боевой базы ozbooks.zip.

После распаковки надо скормить его в вашу дев. базу.

psql -f (путь к файлу azbuker_oz_books.sql) (имя вашей dev базы азбукера)

После чего в автосаджесте при добавлении нового лота можно искать книги например Стивен и Томас

4. Деплой

Изучите deploy.rb и Capfile. Деплоить на свой хостинг есть смысл для тестов только если хотите мигрировать на новые рельсы и новый капистрано.

Как участвовать в проекте

Приглашаются начинающие и опытные разработчики. Пока все желающие, но приоритет у студентов и выпускников наших интенсивов по Ruby on Rails.

Приглашаются и НЕ программисты (маркетологи, продуктологи, любители книг) — хорошие бизнес решения с удовольствием внедрим, а если решения принесут деньги, то и поделимся.

Основной ваш вклад в проект — пулл-реквест с полезным кодом или Issue (https://github.com/aristofun/azbuker/issues) если это не связанное с кодом улучшение.

Официальный слак: http://bit.ly/azbukerslack

Внимание, тут вас не будут учить программировать (для этого есть курсы). Тут вы должны приносить пользу.

Как приносить пользу?

Задачи для разработчиков есть на любой вкус и скилл. Идеи по развитию самого продукта — тоже велкам. Это не проект для подражания, но проект для улучшения. Здесь полно проблем в коде, но проект живет и приносит пользу.

А значит ваш труд по улучшнию проекта нужен людям. И главное — каждая активность это хорошая строчка в резюме.

Для нубов

  • Документирование проекта (вики — как работает сбор обложек с озона, какие есть кастомные rake таски, диаграмма зависимостей между моделями)
  • Перевод документации (вот этого ридми например) на английский
  • Исправление кодстайла и мелких ошибок, некрасивостей в коде (тысячи их!)
  • Комментирование особо сложных и опасных мест в коде (такого тоже полно)
  • Рефакторинг и упрощение тестов
  • Написание дополнительных тестов

Для продвинутых

  • Миграция на свежие Rails, свежие капистрано и пр. (глобальная и крутая для скилла задача)
  • Автоматизация (или переделка) импорта свежих озоновских книжек
  • Рефакторинг кода, избавление от костылей и code smell
  • Выделение Service Objects и отделение логики обработки объявлений от веб-представлений
  • Миграция на последний Bootstrap
  • Избавление от старой админки (прикручивание новой?)
  • Поиск и исправление уязвимостей в коде

Лицензия и права

Код можно использовать только в личных, учебно-позновательных целях и для развития данного проекта. Использование кода или его частей в других проектах разрешается только с явного согласия автора данного репозитория.

azbuker's People

Contributors

aristofun avatar

Watchers

James Cloos avatar Aleksei Zibarev avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.