A minimum viable hackathon planner;
- should be open source.
- should allow capturing of ideas in a modern way (I hear SPAs, Markdown, subtle animations, web sockets, responsive design).
- should allow simple ways of reacting to those ideas (i.e sending likes and possibly comments in the future).
- should be simple to sign up and login (built in GitHub authentication?).
- should allow a simple way of forming teams (mark the idea/team that you want to join and done!).
- should allow live monitoring of teams as they form and evolve. It makes the team formation process more exciting to follow. Watching as ideas live and die (signalR, socket.io ?).
For more information: hakantuncer.com
Running The App
To run the app, follow these steps.
- Ensure that NodeJS is installed. This provides the platform on which the build tooling runs.
- From the project folder, execute the following command:
- Ensure that Gulp is installed globally. If you need to install it, use the following command:
npm install -g gulp
Note: Gulp must be installed globally, but a local version will also be installed to ensure a compatible version is used for the project.
- Ensure that jspm is installed globally. If you need to install it, use the following command:
npm install -g jspm
Note: jspm must be installed globally, but a local version will also be installed to ensure a compatible version is used for the project.
Note: jspm queries GitHub to install semver packages, but GitHub has a rate limit on anonymous API requests. It is advised that you configure jspm with your GitHub credentials in order to avoid problems. You can do this by executing
jspm registry config githuband following the prompts. If you choose to authorize jspm by an access token instead of giving your password (see GitHub
Settings > Personal Access Tokens),
public_repoaccess for the token is required.
- Install the client-side dependencies with jspm:
jspm install -y
Note: Windows users, if you experience an error of "unknown command unzip" you can solve this problem by doing
npm install -g unzipand then re-running
- To run the app, execute the following command:
- Browse to http://localhost:9000 to see the app. You can make changes in the code found under
srcand the browser should auto-refresh itself as you save files.
The Skeleton App uses BrowserSync for automated page refreshes on code/markup changes concurrently across multiple browsers. If you prefer to disable the mirroring feature set the ghostMode option to false
Running The App under Electron
To run the app under Electron, follow these steps.
- Install Electron
npm install electron-prebuilt -g
- To start the app, execute the following command:
Note: If you use electron every time or are packaging and so-forth, Then change this line in package.json from
"main": "index.js",Build the app (this will give you a dist directory)
To start the app, execute the following command:
Bundling is performed by Aurelia Bundler. A gulp task is already configured for that. Use the following command to bundle the app:
You can also unbundle using the command bellow:
The configuration is done by
rev: true to add bundle file revision/version.
Running The Unit Tests
To run the unit tests, first ensure that you have followed the steps above in order to install all dependencies and successfully build the library. Once you have done that, proceed with these additional steps:
- Ensure that the Karma CLI is installed. If you need to install it, use the following command:
npm install -g karma-cli
- Install Aurelia libs for test visibility:
jspm install aurelia-framework jspm install aurelia-http-client jspm install aurelia-router
- You can now run the tests with this command:
Running The E2E Tests
Integration tests are performed with Protractor.
- Place your E2E-Tests into the folder
- Install the necessary webdriver
Configure the path to the webdriver by opening the file
protractor.conf.jsand adjusting the
seleniumServerJarproperty. Typically its only needed to adjust the version number.
Make sure your app runs and is accessible
- In another console run the E2E-Tests
Exporting bundled production version
A gulp task is already configured for that. Use the following command to export the app:
The app will be exported into
export directory preserving the directory structure.
The configuration is done by
export.json file is available for including individual files.