GithubHelp home page GithubHelp logo

solomonilo / dateprog Goto Github PK

View Code? Open in Web Editor NEW

This project forked from bamper/dateprog

0.0 0.0 0.0 3.79 MB

Date A Programmer: open source (Apache License) online dating service built with Ruby On Rails with private/public profiles, chat, admin panel, analytics, matches, tests constructor

License: Apache License 2.0

Ruby 35.47% JavaScript 13.17% CSS 20.42% HTML 30.95%

dateprog's Introduction

About

Date A Programmer ("Замуж За Программиста") - online dating for programmers with public and private profiles, online chats, tests constructor, email notifications and more. Date A Programmer: Post Mortem (Russian translation is here) Open sourced in January 2016 to help others save time building online dating services.

Technology Stack

  • Ruby On Rails (Ruby Version 2.1.1, Rails Version 4.1.1)
  • HAML (for views)
  • Mandrill (to send emails with notifications, welcome emails, reminders etc )
  • Amazon AWS S3 (to store photo files from profiles)
  • Amazon CloudFront (as CDN for assets)
  • Heroku (hosting the application and separate server for faye 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

Marketing, Emails, Analytics

  • Email Triggers.pdf - templates for 10+ emails (English, Russian) to be sent on triggers like welcome to the website, new unread message for the user, user was asked to open her private profile etc.
  • Actions To Log - Sheet1.pdf - list of events logged and sent to the external analytics systems like Google Analytics and Mixpanel

Getting Started 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 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

  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"

Amazon CloudFront note: if you have CloudFront set up then assets will be fetched from Heroku for the first time but then they will be served from CLOUDFRONT_ENDPOINT. When you are updating assets you may need to reset the cache in the CloudFront control panel. See this article - see "Option 2" for detailed instruction on setting up CloudFront

  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

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.