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.
- 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
- The code is licensed under Apache License 2.00
- Copyright © 2014-2015 Evgenii Mironichev
- Founder and Junior Developer: Evgenii Mironichev @emironic
- Leading Developer, Backend & Frontend, JS, Deployment, Design: Nitin Barai [email protected] - also contact Nitin on Github @nitinbarai777
- 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
- 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
- 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 anddateprog
as password - test users:
[email protected]
or[email protected]
or[email protected]
as login and123456
as default password
- 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 theconfig/application.yml
- copy the URL of your Faye server on Heroku from browser (for example
- 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
- Create the application on Heroku to deploy the
dateprog
app into it - 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
- Finally push the
dateprog
to the Heroku to run in production
~/dateprog $ git push heroku master
- Run the database migration on Heroku and seed the default data
~/dateprog $ heroku run rake db:migrate
~/dateprog $ heroku run rake db:seed
- See
config/application.yml
for tokens and variables you will need to set for use 3rd party services to upload photo, send emails etc