RebelBase:虚拟图书俱乐部Rails应用程序

Sylvia Yang摄,Unsplash

现在是项目组合时间! ew,这花了相当长的时间才建立起来。 和往常一样,我将分享建立叛军基地的方法 从零开始-从设计用户流程到部署。 我喜欢过程中的每一刻,尤其是在最后的重构步骤中,并且从构建此项目中学到了很多东西。

去看看,玩,然后以我的方式发送建议!

Rebelbase的简要演练视频

我喜欢书。 也许太多了。 在构思阶段,我碰巧正在寻找一个有以下要求的在线读书俱乐部:

  • 它使成员可以轻松建议下一读
  • 它允许会员浏览所有现有的俱乐部
  • 它允许成员关注/取消关注任何俱乐部
  • 其UI / UX直观直观

到目前为止,我还没有看到任何有力的竞争者,这就是我决定建立rebelbase的主要原因 ,但是,如果您知道的话,请告诉我! 我很想检查一下。

Rails很棒。 要从头开始构建Rails应用程序,实际上需要做的就是rails new rebelbase ,此单行命令将创建项目所需的整个Rails目录结构。 结合rails generate resource命令,这将设置我们的模型,控制器,迁移,并将resources :model添加到我们的config / routes.rb文件中。

对于将来的Rails项目,我要牢记的一个重要策略是收集在项目过程中将使用的所有潜在的宝石。 这将使我具有更清晰的远见,并且可以让我在开发阶段的早期就为项目配置gem,而不是在编写冗长的代码之后进行配置,这可能会增加出错的可能性。

在完成上一个项目(Flatiron Hall)之后,我在设计时了解了专注于用户流程图的价值。 这是必不可少的,因为该项目的范围比Flatiron Hall大,并且我不想浪费时间来确定用户在任何时间点的位置以及在运行方法后将用户重定向到的位置。

用户流程图草稿

定义模型之间的关系也不是一件容易的事。 但是在完成这个项目之后,我对has_many :through和在数据库中设置引用有了更好的了解。

我希望做的一件事是从一开始就用PostgreSQL数据库设置我的Rails应用程序,而不是在开发之后和部署到Heroku之前。 我还要检查我的Ruby版本,并确保它满足Heroku的最低可接受版本。

最长的阶段。 也是最愉快的。 我学会了使用许多宝石,例如:

  • 设计(用于安全的用户身份验证)
  • omn​​iauth(用于OAuth)
  • omn​​iauth-facebook(用于Facebook OAuth)
  • simple_form(用于设置表单字段的样式)
  • country_select(用于列出国家/地区以指示用户的位置)
  • friendly_id(用于URL搜索栏中的params[:slug]
  • 社交化(允许用户关注/取消关注俱乐部)
  • google_books(用于搜索书籍和实例化Book对象)
  • 载波(用于上传用户个人资料图片)
  • mini_magick(与载波一起使用)
  • libri(用于在用户个人资料页面上显示与书籍相关的随机报价)

部署到Heroku相对来说比较顺利,但是如果没有Stack Overflow,我就做不到。 我遇到的一些错误包括:

  • 不兼容的Ruby版本
  • 被其他宝石列为依赖项的缺失的宝石导致LoadError
  • 推送到GitHub master之后忘记运行heroku run rake db:drop db:create db:migrate
  • 具有表列引用其他表的错误迁移序列,而此“其他表”仍未创建。
  • 忘记更新Facebook OAuth中使用的heroku config导致了parameter_id错误。

除此之外,这是一个成功的学习项目!


感谢您的阅读!