monshq / board Goto Github PK
View Code? Open in Web Editor NEWУчебный проект
Учебный проект
Чтобы меня не беспокоили после продажи, я хочу возможность снять товар с продажи
Предлагаю сделать это.
https://github.com/matthuhiggins/foreigner
Виктор говорил, что контроль на уровне базы всегда лучше, чем контроль на уровне приложения.
https://github.com/guard/guard
https://github.com/guard/guard-rspec
https://github.com/guard/guard-spork
https://github.com/sporkrb/spork
пример конфигурации guard:
guard 'spork', :rspec_env => { 'RAILS_ENV' => 'test' }, :wait => 60, :cucumber => false, :test_unit => false do
watch('config/application.rb')
watch('config/environment.rb')
watch(%r{^config/environments/.+\.rb$})
watch(%r{^config/initializers/.+\.rb$})
watch('Gemfile')
watch('Gemfile.lock')
watch('spec/spec_helper.rb') { :rspec }
end
guard 'rspec', :cli => '--color --drb', :version => 2, :all_on_start => false, :all_after_pass => false do
watch(%r{^spec/.+_spec\.rb$})
watch(%r{^app/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
watch(%r{^spec/support/(.+)\.rb$}) { "spec" }
watch('spec/spec_helper.rb') { "spec" }
watch('app/controllers/application_controller.rb') { "spec/controllers" }
watch(%r{^app/views/(.+)/.*\.(erb|haml)$}) { |m| "spec/controllers/#{m[1]}_controller_spec.rb" }
watch('app/services/search_service.rb') { "spec/services/search_service" }
end
Как только сделаешь - нужно будет рассказать что такое spork, как работает, какие неожиданности поджидают.
Надо создать индексы для ассоциаций.
Можно использовать гем lol_dba
.
Добавить архивирование свзанных с Item сущностей (images, messages)
Чтобы лучше указать что мне нужно, я хочу воспользоваться формой поиска
Чтобы эффективно решать проблемы пользователей, я хочу уметь залогиниться под любым пользователем
From: #12
Думаю нужно отправлять email уведомление о том что фотка забанена. Кстати удалена и забанена - это видимо с точки зрения админа одно и то же в данном случае. Поэтому пусть просто банит, без удаления. Итого:
Отправлять email со ссылкой на забаненную фотку. В письме должен быть коментарий админа
Забаненную фотку видит только разместивший объявление
Пометка о том что фотка забанена - нужна.
Нужно добавить возможность удаления юзера (метить как archived) с каскадным архивированием связанных моделей: Item, Message, Photo
Чтобы мой товар выделялся в списках я хочу выбрать заглавную фотографию
Чтобы продать что либо, я подаю объявление с описанием товара и контактными данными
Модератор должен видеть список новых объявлений, которые нужнаются в модерации.
Прикрутить Coveralls короче.
Чтобы управлять своими объявлениями я регистрируюсь на сайте
Надо сделать так, чтобы картинки были недоступны по прямым ссылкам на сервере
Сценарий: Гость (не зерегистрированный пользователь)
Я могу просматривать все опубликованные объявления
И выбирать для просмотра одно из них
Сейчас используются возможности интеграции гема tire с моделями. Это годный способ для простых проектов, но в сложных лучше реализовывать поиск в виде отдельных сервисов. От tire нам нужен лишь DSL построения запросов.
Чтобы иметь больше шансов продать товар, мне нужна обратная связь с покупателями - возможность переписки
Сабж.
Чтобы покупателю было проще найти мой товар, я хочу указать теги категорий, которым он принадлежит
Чтобы ответить на вопрос покупателя как можно скорее, я хочу получать уведомления по email и SMS
Использовать Mutant, чтобы контролировать качество тестов.
Чтобы ресурс оставался популярным, я хочу постмодерировать объявления и фотографии с возможностью удалить объявление и/или забанить продавца
Каждый блок feature - отдельно.
Каждый вспомогательный метод - отдельно.
Чтобы было меньше конфликтов.
Чтобы лучше представить тавар, я хочу загружать несколько фотографий
Необходимо чтобы state менялся только через event state-machine
Поля
item.seller_id
items_tags.item_id
items_tags.tag_id
messages.sender_id
messages.recipient_id
messages.item_id
photos.item_id
сделать not null
Чтобы купить именно то что мне нужно, я хочу возможность переписки с продавцом
Сценарий: Гость (не зерегистрированный пользователь)
Я нахожу интетесущющее меня объявление
Затем жму "связаться" с продавцом
Открывается форма написания сообщения
Затем я пишу сообщение и жму отправить
Тогда мне предлагается пройти регистрацию
После регистрации я вижу что сообщене отправлено
Сценарий: Пользователь
То же самое, но без регистрации
Сценарий: История переписки
В личном кабинете я вижу папки сообщений Входящие и Отправленные
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.