![Pickable Stories](https://badge.waffle.io/hacken-in/website.png?label=ready&title=Pick One)
This is the code of hacken.in, an event calendar for geeks in and around Cologne, Berlin and Munich. If you want to help us in extending the calendar to your city, please contact us in our Google Group.
If you find a bug, please report it on our tracker. We discuss features and problems in our Google Group. If you want to contribute to hacken.in, have a look at our Kanban Board at waffle.io. Just pick a card from the Pick One column and start hacking. This is our current activity level:
When you want to add an event to hacken.in please check with the following guidelines:
- Currently we only feature events in Ruhr area, Berlin and Munich plus BIG events in Europe
- The following topics are allowed:
- Programming (in any language)
- Nerd-Culture (like Star Wars, Ponies, Gaming, Comics...)
- Software Development Methods and Software Engineering
- Electronics and Robots
- Networking
If you want to work on hacken.in you have two options:
-
Use our Vagrant VM.
The best method if you haven't tried Rails before and don't want to install PostgreSQL on your computer.
-
Start hacken.in locally with Pow
If you already have Pow and a local PostgreSQL installation, you are good to go. Just skip to the section
Using Pow
.
Hacken.in can also be started in a virtual machine with Vagrant. This might be the perfect fit if you cannot or don't want to install PostgreSQL or MySQL on your computer. To get started with Vagrant, install the latest version of Vagrant and VirtualBox, and check out your fork of the project (see Getting Started).
Once your checkout is ready, type the following command into your terminal and our friendly setup assistant should take over from there on:
$ script/bootstrap
Once it is done, point your browser to hacken.local. All the files you change in your local folder are synced to the virtual machines, so you can work on hacken.in right away. 🔧
If you use filesystem encryption, you might receive an error similar to mount.nfs: mount to NFS server '.../' failed: timed out, giving up
. In this case, edit the Vagrantfile and uncomment the line:
config.vm.synced_folder ".", "/opt/hacken.in", type: 'rsync', rsync__args: ['-a']
Afterwards local code can to be re-synced to the VM via $ vagrant rsync-auto
which you can run in the background.
If you run into any problems: Don't be afraid to tell us on Twitter or open a ticket.
- Fork the Project
- Check out your fork
cd
into the directory, install the bundler gem and runbundle install
- Now create a database configuration:
cp config/database.yml_example config/database.yml
- The example configuration requires PostgreSQL including a database and a user
- More information on the database configuration
- Now run
rake db:migrate db:seed
to setup your database. You will now have an admin useradmin@hacken.local
with the passwordhacken_admin
- To run your application locally you can now use
rails server
- Now visit http://localhost:3000 in your web browser and you are ready to go!
You can reach us on lots of ways. The most preferred one would be either to open an issue here or to use our Google Group. If you want to drink from the firehose (and see a lot of GIFs) join us in our Slack room. Just ping us on Twitter or send an email to admin@hacken.in and we will add you.
If you are in the project directory, you can start Guard with guard
.
This will offer you the following comfortable features:
- Pow: Pow will get restarted automatically when necessary.
- Bundler: Bundler will run, when the Gemfile changes server running
- Specs: If you make changes to a spec or an application file, the according spec will be run and you will get feedback.
Hacken.in is developed in a test-driven way using RSpec and FactoryGirl. If you want to contribute to the project always add tests for your added functionality. If you find a bug it would be really helpful if you add a regression test that displays this misbehavior. Even better: Fix it afterwards 😉
Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.
See CONTRIBUTING.md for details