Giter Site home page Giter Site logo

dateprog's Introduction

About

Date A Programmer ("Замуж За Программиста") - online dating for programmers with public and private profiles, online chats, tests constructor, email notifications and more

Articles about the project

Date A Programmer: Post Mortem, Russian translation is here

Technology Stack

  • Ruby On Rails (Ruby Version 2.1.1, Rails Version 4.1.1)
  • HAML (for views)
  • Mandrill (to send emails with notifications)
  • Amazon AWS S3 (to store photo files)
  • Heroku to run the application and the chat server
  • Cloudfront (to cache assets to get high performance of the main application)
  • Postgresql database
  • Faye (for the realtime chat)
  • Puma web server

License

  • The code is licensed under Apache License 2.00
  • Copyright © 2014-2015 Evgenii Mironichev

Credits

Instruction

Setting up development environment on local machine

  1. clone the repo, install required bundle, copy default files, run migrations and seed data on your local machine,
~/ $ git clone [email protected]:emirn/dateprog.git
~/ $ cd dateprog
~/dateprog $ bundle install
~/dateprog $ cp config/application-default.yml config/application.yml
~/dateprog $ cp config/database-default.yml config/database.yml
~/dateprog $ cp config/application-default.yml config/application.yml
~/dateprog $ cp gitignore-default .gitignore
~/dateprog $ rake db:create
~/dateprog $ rake db:reset
  1. Now you may run the local server
~/dateprog $ rails s

Note: If you are using Cloud9 IDE then use the following command instead:

~/dateprog $ rails s -b $IP -p $PORT

Default Users

  • admin control panel at http://localhost:3000/admin/login with [email protected] as login and dateprog as password
  • test users: [email protected] as login and 12345 as default password
  1. Realtime chat server: clone and run your own faye rails server required for the realtime chat
~/dateprog $ cd ..
~/ $ git clone https://github.com/nitinbarai777/dateprogfaye.git
~/ $ cd dateprogfaye
  • create the application for Faye server on Heroku and deploy the dateprogfaye application to it
~/dateprogfaye $ git push heroku master
  • in the local dateprog folder do the following
    • copy the URL of your Faye server on Heroku from browser (for example https://YOURFAYEINSTANCE.herokuapp.com)
    • paste that URL into the FAYE_ENDPOINT variable in the config/application.yml
  1. Precompile assets for Dateprog application for the production (to run on Heroku):
~/dateprog $ RAILS_ENV=production rake assets:precompile
~/dateprog $ git add .
~/dateprog $ git commit -m "assets were precompiled for the production"
  1. Create the application on Heroku to deploy the dateprog app into it
  2. Setup the production environment varables for Heroku

The project uses Figaro gem that uses environment variables to store tokens and keys in application.yml. Variables are stored in /config/application.yml that you have to update with your own generated keys and tokens.

~/dateprog $ figaro heroku:set -e production
  1. Finally push the dateprog to the Heroku to run in production
~/dateprog $ git push heroku master
  1. Run the database migration on Heroku and seed the default data
~/dateprog $ heroku run rake db:migrate
~/dateprog $ heroku run rake db:seed
  1. See config/application.yml for tokens and variables you will need to set for use 3rd party services to upload photo, send emails etc

dateprog's People

Contributors

emirn avatar

Watchers

 avatar  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.