Skip to content
This repository was archived by the owner on Apr 16, 2024. It is now read-only.
wcravens edited this page Mar 7, 2014 · 16 revisions

Goals

The two main goals of the current CODE portal project were to provide a landing page for branding CODE and to create an event aggregator for tech events in the Champaign Urbana Community.

Features

Website

  • Logo and 'branding' for CODE
  • Generic layout for website; Landing Page, Organization Directory, About Page & Generic Content Page
  • Slideshow / Banner
  • Highlighted content area
  • Navigation Bar
  • Footer Site-Nav Area
  • Stream of recent events/news
  • Login

User Interaction / Publishing

  • Login with LinkedIn Account (Any LinkedIn User not just CODE group members)
  • Register an Organization
  • Organizations appear in the directory after an admin 'publishes' the registration
  • Once published events from the organization's feed will populate in the calendar automatically
  • Monitor proprietary feeds ( Research Park / EDC )
  • Proprietary feed events are unpublished until system admin marks tech events from feed
  • Organization feeds are published automatically
  • Provide a calendar of aggregated events
  • Popup bio for event when clicked on calendar
  • Browse to event page from link in Bio

Project Notes

With a generous DCEO grant organized by the SBDC we were able to put together a small team of local freelance developers. The project spent roughly half it's budget on Design & Cutup and the other half on feature implementation.

Technology

  • Ruby 2.1
  • Rails 4.0
  • Postgresql
  • S3
  • Heroku

Deploying

Create a Heroku app and add the following add-ons: Heroku PostgreSQL and Heroku Scheduler (a cron service). The other add-ons which we're using for the app aren't required. Next, set an authentication token for the cron job with:

heroku config:set --app cucode-prd CRON_TOKEN=`openssl rand -hex 32`

Create the cron job with:

heroku addons:open scheduler # This opens a web page.
# Add a "rake import_events" job.

That's it!

Admin

Who can Login? Any LinkedIn User

Assign administrator privileges

heroku run --app cucode-prd rails c
User.find_by_email("mr.anderson@matrix.noop").add_role("admin")

Static Pages

heroku run --app cucode-prd rails c
Page.create(title: "My New Contact Page", content: "Some <blink>HTML</blink> content", url: "/contact")
# You can put pages at any alpha-numeric slug on the site root.
# For security, the Pages controller scrubs out any other character.
# To add support for dashes, just modify the regex in that controller.

Register Organizations

Events from Global Feeds need to be 'published'. Events from 'published' organizations are automatically published.