GithubHelp home page GithubHelp logo

firefly's Introduction

firefly's People

Contributors

ariejan avatar mboeh avatar volgorean avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

firefly's Issues

Pagination of items

This is a beginner friendly issue which means that it should be a nice first task if you're looking to learn Ruby or Hanami. Feel free to ask questions in the comments or hop over to gitter to chat with the maintainer and others. And remember to have fun!

The current /admin only shows the 10 most recent items. This issue asks to add pagination of some sort, so you can navigate further back in history.

Sort shortened URLs

Default sorting: created_at DESC
Possible: clicks ASC, clicks DESC, created_at AS

Social share options for admin

This is a beginner friendly issue which means that it should be a nice first task if you're looking to learn Ruby or Hanami. Feel free to ask questions in the comments or hop over to gitter to chat with the maintainer and others. And remember to have fun!

The admin should, for each item, be able to share that link on social media. I guess 'public' sharing schemes will work, so these are basically links to twitter, facebook, etc. to share something.

RuntimeError - downstream app not set

2012-04-13T16:13:24+00:00 app[web.1]: /app/.bundle/gems/ruby/1.9.1/gems/sinatra-1.1.2/lib/sinatra/base.rb:607:in forward' 2012-04-13T16:13:24+00:00 app[web.1]: RuntimeError - downstream app not set: 2012-04-13T16:13:24+00:00 app[web.1]: /app/.bundle/gems/ruby/1.9.1/gems/sinatra-1.1.2/lib/sinatra/base.rb:689:inroute_missing'
2012-04-13T16:13:24+00:00 app[web.1]: /app/.bundle/gems/ruby/1.9.1/gems/sinatra-1.1.2/lib/sinatra/base.rb:638:in route!' 2012-04-13T16:13:24+00:00 app[web.1]: /app/.bundle/gems/ruby/1.9.1/gems/sinatra-1.1.2/lib/sinatra/base.rb:634:inroute!'
2012-04-13T16:13:24+00:00 app[web.1]: /app/.bundle/gems/ruby/1.9.1/gems/sinatra-1.1.2/lib/sinatra/base.rb:553:in block in call!' 2012-04-13T16:13:24+00:00 app[web.1]: /app/.bundle/gems/ruby/1.9.1/gems/sinatra-1.1.2/lib/sinatra/base.rb:760:indispatch!'
2012-04-13T16:13:24+00:00 app[web.1]: /app/.bundle/gems/ruby/1.9.1/gems/sinatra-1.1.2/lib/sinatra/base.rb:725:in instance_eval' 2012-04-13T16:13:24+00:00 app[web.1]: /app/.bundle/gems/ruby/1.9.1/gems/sinatra-1.1.2/lib/sinatra/base.rb:725:inblock in invoke'
2012-04-13T16:13:24+00:00 app[web.1]: /app/.bundle/gems/ruby/1.9.1/gems/sinatra-1.1.2/lib/sinatra/base.rb:725:in catch' 2012-04-13T16:13:24+00:00 app[web.1]: /app/.bundle/gems/ruby/1.9.1/gems/sinatra-1.1.2/lib/sinatra/base.rb:725:ininvoke'
2012-04-13T16:13:24+00:00 app[web.1]: /app/.bundle/gems/ruby/1.9.1/gems/sinatra-1.1.2/lib/sinatra/base.rb:553:in call!' 2012-04-13T16:13:24+00:00 app[web.1]: /app/.bundle/gems/ruby/1.9.1/gems/sinatra-1.1.2/lib/sinatra/base.rb:538:incall'
2012-04-13T16:13:24+00:00 app[web.1]: /app/.bundle/gems/ruby/1.9.1/gems/rack-1.2.1/lib/rack/session/cookie.rb:37:in call' 2012-04-13T16:13:24+00:00 app[web.1]: /home/heroku_rack/lib/static_assets.rb:9:incall'
2012-04-13T16:13:24+00:00 app[web.1]: /home/heroku_rack/lib/last_access.rb:15:in call' 2012-04-13T16:13:24+00:00 app[web.1]: /app/.bundle/gems/ruby/1.9.1/gems/rack-1.2.1/lib/rack/urlmap.rb:41:ineach'
2012-04-13T16:13:24+00:00 app[web.1]: /app/.bundle/gems/ruby/1.9.1/gems/rack-1.2.1/lib/rack/urlmap.rb:47:in block in call' 2012-04-13T16:13:24+00:00 app[web.1]: /app/.bundle/gems/ruby/1.9.1/gems/rack-1.2.1/lib/rack/urlmap.rb:41:incall'
2012-04-13T16:13:24+00:00 app[web.1]: /home/heroku_rack/lib/date_header.rb:14:in call' 2012-04-13T16:13:24+00:00 app[web.1]: /app/.bundle/gems/ruby/1.9.1/gems/rack-1.2.1/lib/rack/builder.rb:77:incall'

4-13T16:13:24+00:00 app[web.1]: /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/thin-1.2.6/lib/thin/connection.rb:76:in block in pre_process' 2012-04-13T16:13:24+00:00 app[web.1]: /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/thin-1.2.6/lib/thin/connection.rb:74:incatch'
2012-04-13T16:13:24+00:00 app[web.1]: /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/thin-1.2.6/lib/thin/connection.rb:74:in pre_process' 2012-04-13T16:13:24+00:00 app[web.1]: /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/thin-1.2.6/lib/thin/connection.rb:57:inprocess'
2012-04-13T16:13:24+00:00 app[web.1]: /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/thin-1.2.6/lib/thin/connection.rb:42:in receive_data' 2012-04-13T16:13:24+00:00 app[web.1]: /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/eventmachine-0.12.10/lib/eventmachine.rb:256:inrun'
2012-04-13T16:13:24+00:00 app[web.1]: /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/eventmachine-0.12.10/lib/eventmachine.rb:256:in run_machine' 2012-04-13T16:13:24+00:00 app[web.1]: /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/thin-1.2.6/lib/thin/backends/base.rb:57:instart'
2012-04-13T16:13:24+00:00 app[web.1]: /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/thin-1.2.6/lib/thin/server.rb:156:in start' 2012-04-13T16:13:24+00:00 app[web.1]: /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/thin-1.2.6/lib/thin/runner.rb:177:inrun_command'
2012-04-13T16:13:24+00:00 app[web.1]: /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/thin-1.2.6/lib/thin/controllers/controller.rb:80:in start' 2012-04-13T16:13:24+00:00 app[web.1]: /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/thin-1.2.6/lib/thin/runner.rb:143:inrun!'
2012-04-13T16:13:24+00:00 app[web.1]: /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/thin-1.2.6/bin/thin:6:in <top (required)>' 2012-04-13T16:13:24+00:00 app[web.1]: /usr/ruby1.9.2/bin/thin:19:inload'
2012-04-13T16:13:24+00:00 app[web.1]: /usr/ruby1.9.2/bin/thin:19:in `

'
2012-04-13T16:13:24+00:00 heroku[router]: GET foo-bar-9571.heroku.com//4 dyno=web.1 queue=0 wait=0ms service=11ms status=500 bytes=30

I've got a really basic installation set up as per the instructions at: http://ariejan.net/2010/06/06/setup-your-own-firefly-url-shortener-in-25-minutes and when I attempt to un-shorten the link this is what I see in my heroku logs. I'm also seeing that all my URLs are basically just foo.com//1 in sequential order

Retrieve link HTML title

When shortening an URL, Firefly should try to retrieve the remote HTML page and extract the title for display in the admin panel.

Some symbols don't work in API key

I set up Firefly on Heroku with an API key that included the characters # and @. When I tried to log in using that key, it failed silently (just dumping me back to the login page with no error). When I changed the API key to something with no symbols (letters and numbers only) it worked fine.

Sharing a link to facebook without a title gives exception

When sharing a link to facebook (which does not require/support a title), without posting a title, an exception is thrown.

NoMethodError - private method `gsub' called for nil:NilClass:
 /usr/lib/ruby/1.8/uri/common.rb:320:in `unescape'
 /usr/lib/ruby/gems/1.8/gems/firefly-1.5.1/lib/firefly/server.rb:207:in `GET /api/share'
 /usr/lib/ruby/gems/1.8/gems/sinatra-1.2.3/lib/sinatra/base.rb:1164:in `call'
 /usr/lib/ruby/gems/1.8/gems/sinatra-1.2.3/lib/sinatra/base.rb:1164:in `compile!'
 /usr/lib/ruby/gems/1.8/gems/sinatra-1.2.3/lib/sinatra/base.rb:738:in `instance_eval'
 /usr/lib/ruby/gems/1.8/gems/sinatra-1.2.3/lib/sinatra/base.rb:738:in `route_eval'
 /usr/lib/ruby/gems/1.8/gems/sinatra-1.2.3/lib/sinatra/base.rb:722:in `route!'
 /usr/lib/ruby/gems/1.8/gems/sinatra-1.2.3/lib/sinatra/base.rb:772:in `process_route'
 /usr/lib/ruby/gems/1.8/gems/sinatra-1.2.3/lib/sinatra/base.rb:769:in `catch'
 /usr/lib/ruby/gems/1.8/gems/sinatra-1.2.3/lib/sinatra/base.rb:769:in `process_route'
 /usr/lib/ruby/gems/1.8/gems/sinatra-1.2.3/lib/sinatra/base.rb:721:in `route!'
 /usr/lib/ruby/gems/1.8/gems/sinatra-1.2.3/lib/sinatra/base.rb:720:in `each'
 /usr/lib/ruby/gems/1.8/gems/sinatra-1.2.3/lib/sinatra/base.rb:720:in `route!'
 /usr/lib/ruby/gems/1.8/gems/sinatra-1.2.3/lib/sinatra/base.rb:857:in `dispatch!'
 /usr/lib/ruby/gems/1.8/gems/sinatra-1.2.3/lib/sinatra/base.rb:648:in `call!'
 /usr/lib/ruby/gems/1.8/gems/sinatra-1.2.3/lib/sinatra/base.rb:822:in `instance_eval'
 /usr/lib/ruby/gems/1.8/gems/sinatra-1.2.3/lib/sinatra/base.rb:822:in `invoke'
 /usr/lib/ruby/gems/1.8/gems/sinatra-1.2.3/lib/sinatra/base.rb:822:in `catch'
 /usr/lib/ruby/gems/1.8/gems/sinatra-1.2.3/lib/sinatra/base.rb:822:in `invoke'
 /usr/lib/ruby/gems/1.8/gems/sinatra-1.2.3/lib/sinatra/base.rb:648:in `call!'
 /usr/lib/ruby/gems/1.8/gems/sinatra-1.2.3/lib/sinatra/base.rb:633:in `call'
 /usr/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/session/cookie.rb:37:in `call'
 /usr/lib/ruby/gems/1.8/gems/passenger-2.2.11/lib/phusion_passenger/rack/request_handler.rb:92:in `process_request'
 /usr/lib/ruby/gems/1.8/gems/passenger-2.2.11/lib/phusion_passenger/abstract_request_handler.rb:207:in `main_loop'
 /usr/lib/ruby/gems/1.8/gems/passenger-2.2.11/lib/phusion_passenger/rack/application_spawner.rb:118:in `run'
 /usr/lib/ruby/gems/1.8/gems/passenger-2.2.11/lib/phusion_passenger/rack/application_spawner.rb:65:in `spawn_application'
 /usr/lib/ruby/gems/1.8/gems/passenger-2.2.11/lib/phusion_passenger/utils.rb:184:in `safe_fork'
 /usr/lib/ruby/gems/1.8/gems/passenger-2.2.11/lib/phusion_passenger/rack/application_spawner.rb:58:in `spawn_application'
 /usr/lib/ruby/gems/1.8/gems/passenger-2.2.11/lib/phusion_passenger/rack/application_spawner.rb:41:in `spawn_application'
 /usr/lib/ruby/gems/1.8/gems/passenger-2.2.11/lib/phusion_passenger/spawn_manager.rb:159:in `spawn_application'
 /usr/lib/ruby/gems/1.8/gems/passenger-2.2.11/lib/phusion_passenger/spawn_manager.rb:287:in `handle_spawn_application'
 /usr/lib/ruby/gems/1.8/gems/passenger-2.2.11/lib/phusion_passenger/abstract_server.rb:352:in `__send__'
 /usr/lib/ruby/gems/1.8/gems/passenger-2.2.11/lib/phusion_passenger/abstract_server.rb:352:in `main_loop'
 /usr/lib/ruby/gems/1.8/gems/passenger-2.2.11/lib/phusion_passenger/abstract_server.rb:196:in `start_synchronously'
 /usr/lib/ruby/gems/1.8/gems/passenger-2.2.11/bin/passenger-spawn-server:61

Optimize for large datasets

Some instances of Firefly contain already 800k or more URLs, this may require some optimization. Find out what and how.

Hosting of images

When shortening an URL to an image, Firefly should automatically re-host this image. Additionally it should be possible to upload an image file as well.

Keep in mind that Firefly should be Cloud Ready, so simple file storage will not be sufficient.

Twitter integration

After shortening a URL two things can happen:

  • Auto tweet the URL according to settings in config.ru
  • Give the user the option to tweet the URL by redirecting to Twitter.com

Filter/Search URLs

It should be possible to search the URLs, both short and long URLs are taken into account when filtering.

Bundle the app up in a Gem

Gem includes

  • Sinatra app, easily startable through a rack-up file
  • Command line command to shorten URL's quickly.

Move configuration to /admin

Configuration is now done in an .env file, common configuration settings for the user could be moved to /admin for easier access.

Multi-user support

Support proper users with their own API key. This should allow for 'personal' urls.

E.g. shortening http://example.com by user one should have a different code than for user two. However, it should be possible to aggregate click stats for your self and all users combined.

Setting up 2.0 on Heroku?

I got a working install on my local machine, but was unable to do the same on heroku.

The only changes I've made:
change hostname in firefly.yml to rxlcc.herokuapp.com
comment out other dbs in Gemfile, only pg uncommented

my repo at: https://github.com/hayksaakian/rxlcc
github changelog: hayksaakian/rxlcc@d2e2f92

i'm guessing it's because there are no connections to the production db, but i'm unsure where i would add them

2012-12-31T05:36:20+00:00 heroku[web.1]: Starting process with command `bundle exec rackup config.ru -p 36424`
2012-12-31T05:36:26+00:00 app[web.1]: /usr/local/lib/ruby/1.9.1/syck.rb:135:in `load': syntax error on line 27, col 0: `adapter = uri.scheme' (ArgumentError)
2012-12-31T05:36:26+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:236:in `load_dependency'
2012-12-31T05:36:26+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:251:in `require'
2012-12-31T05:36:26+00:00 app[web.1]:   from /app/config.ru:2:in `block in <main>'
2012-12-31T05:36:26+00:00 app[web.1]:   from /usr/local/lib/ruby/1.9.1/syck.rb:135:in `load'
2012-12-31T05:36:26+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/builder.rb:51:in `instance_eval'
2012-12-31T05:36:26+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/builder.rb:51:in `initialize'
2012-12-31T05:36:26+00:00 app[web.1]:   from /app/lib/firefly/database.rb:8:in `config'
2012-12-31T05:36:26+00:00 app[web.1]:   from /app/lib/firefly/database.rb:13:in `<top (required)>'
2012-12-31T05:36:26+00:00 app[web.1]:   from /app/lib/firefly/database.rb:4:in `connect!'
2012-12-31T05:36:26+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:251:in `require'
2012-12-31T05:36:26+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:251:in `block in require'
2012-12-31T05:36:26+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/server.rb:137:in `start'
2012-12-31T05:36:26+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/bin/rackup:4:in `<top (required)>'
2012-12-31T05:36:26+00:00 app[web.1]:   from /app/config.ru:1:in `new'
2012-12-31T05:36:26+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/bin/rackup:19:in `<main>'
2012-12-31T05:36:26+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/builder.rb:40:in `eval'
2012-12-31T05:36:26+00:00 app[web.1]:   from /app/lib/firefly.rb:30:in `<top (required)>'
2012-12-31T05:36:26+00:00 app[web.1]:   from /app/config.ru:1:in `<main>'
2012-12-31T05:36:26+00:00 app[web.1]:   from /app/config.ru:2:in `require'
2012-12-31T05:36:26+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/server.rb:252:in `start'
2012-12-31T05:36:26+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/server.rb:301:in `wrapped_app'
2012-12-31T05:36:26+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/server.rb:200:in `app'
2012-12-31T05:36:26+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/bin/rackup:19:in `load'
2012-12-31T05:36:26+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/builder.rb:40:in `parse_file'
2012-12-31T05:36:28+00:00 heroku[web.1]: Process exited with status 1
2012-12-31T05:36:28+00:00 heroku[web.1]: State changed from starting to crashed
2012-12-31T05:41:04+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/ host=rxlcc.herokuapp.com fwd=71.212.33.130 dyno= queue= wait= connect= service= status=503 bytes=
2012-12-31T05:41:05+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/favicon.ico host=rxlcc.herokuapp.com fwd=71.212.33.130 dyno= queue= wait= connect= service= status=503 bytes=

my heroku addons:

heroku-postgresql:dev  HEROKU_POSTGRESQL_NAVY

Silent failure on api key login

Whenever I enter any value into the API key field and submit the form, I always get redirected back to the login page without any errors regardless of what I enter in the field. It only happens on my prod ubuntu box with ruby 1.8.7 (2009-06-12 patchlevel 174) [x86_64-linux] and firefly 1.5.2 .

[contest] Firefly needs a logo and website

Domain's ready, only thing missing is a nice Firefly logo and website design.

Goal

The design and logo will be used to promote the open source Firefly application only. Mainly on http://fireflyrb.com

What's firefly

Firefly is a open source (free) URL shortener service that users can self-host. It's written in Ruby.

Specs

  • Clear and recognizable logo, preferably in 300dpi format as well.
  • HTML5/CSS3 compliant design, no javascript, use of images allowed.

We're not looking for hosting or WordPress themes; just a simple HTML design that can be filled with user documentation. Look at http://gembundler.com/ for some inspiration.

Submit your logo/design

Please sent your submission or any questions to [email protected]

Delete shortened URLs

It should be possible to delete a shortened URL from the backend. This will result in an HTTP 410 "Gone" error message.

This includes a nice page saying the URL will not be back.

do_mysql not found, can't install

Hello, exited to user firefly instead of bit.ly!

but your docs don't have a 'getting started' section so I'm going a bit by the seat of my pants here.

I put into my Gemfile

gem 'firefly' "~> 1.5.3"

and with bundle install got

checking for mysql_query() in -lmysqlclient... no
*** extconf.rb failed ***
An error occurred while installing do_mysql (0.10.10), and Bundler cannot continue.
Make sure that `gem install do_mysql -v '0.10.10'` succeeds before bundling.

I use postgres in dev and production and deploy to heroku.

(I also won't know how to user your API after I get it installed, again because no docs for it)

Thanks!

Create a more elaborate API

The API should support the following:

  • Shorten a long_url to a short_url (currently supported)
  • Expand a given short_url or hash to the full URL
  • Get stats (clicks, created_at) for a given short_url or hash.

This API should work with JSON at least, shortening should also work as TXT (i.e. just return the short_url)

Share-to-* double-encodes titles

If a title is url encoded it will be re-encoded when sharing to twitter or hyves.

"Test Post" => "Test%20Post"
"Test%20Post" => "Test%2520Post"

This is incorrect.

Handle requests to /

This is a beginner friendly issue which means that it should be a nice first task if you're looking to learn Ruby or Hanami. Feel free to ask questions in the comments or hop over to gitter to chat with the maintainer and others. And remember to have fun!

How to reproduce

  1. Start with hanami server
  2. Visit http://localhost:2300/
  3. Get a 404 error

How to fix

There are two options here:

  1. Show a generic FireFly landing page
  2. Redirect to /admin

Or combine both by linking to /admin on the landing page.

Allow text-hosting

Allow an item to consist of just text, optionally support syntax highlighting and rendering of markdown and other markup languages, if possible.

Validate long url

Validate long url and return an error if it's no a valid http:// or https:// url.

Ruby 1.9.2 compatibility

Firefly currently runs properly on Ruby 1.8.7 and REE.

Currently, for ruby 1.9.2 not all tests pass:

  1) Sharing hyves should escape UTF-8 correctly
     Failure/Error: self.send verb, '/api/share', @params.merge(:title => title)
     NoMethodError:
       undefined method `empty?' for nil:NilClass
     # (erb):201:in `pretty'
     # ./spec/firefly/sharing_hyves_spec.rb:91:in `block (4 levels) in <top (required)>'

  2) Sharing twitter should escape UTF-8 correctly
     Failure/Error: self.send verb, '/api/share', @params.merge(:title => title)
     NoMethodError:
       undefined method `empty?' for nil:NilClass
     # (erb):201:in `pretty'
     # ./spec/firefly/sharing_twitter_spec.rb:87:in `block (4 levels) in <top (required)>'

Easy Firefly instantiation

This includes a generator and documentation on how to select and configure a database.

Bonus points for deployment to Heroku.

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.