diff --git a/.bowerrc b/.bowerrc new file mode 100644 index 0000000..69fad35 --- /dev/null +++ b/.bowerrc @@ -0,0 +1,3 @@ +{ + "directory": "bower_components" +} diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..c2cdfb8 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,21 @@ +# EditorConfig helps developers define and maintain consistent +# coding styles between different editors and IDEs +# editorconfig.org + +root = true + + +[*] + +# Change these settings to your own preference +indent_style = space +indent_size = 2 + +# We recommend you to keep these unchanged +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true + +[*.md] +trim_trailing_whitespace = false diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..2125666 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +* text=auto \ No newline at end of file diff --git a/.gitignore b/.gitignore index 5d8650c..dc5576c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,5 @@ -_site/ -.vagrant/ +/node_modules +/dist +/.tmp +/.sass-cache +/bower_components diff --git a/.jscsrc b/.jscsrc new file mode 100644 index 0000000..f8bf9ba --- /dev/null +++ b/.jscsrc @@ -0,0 +1,6 @@ +{ + "requireCamelCaseOrUpperCaseIdentifiers": true, + "requireCapitalizedConstructors": true, + "requireParenthesesAroundIIFE": true, + "validateQuoteMarks": "'" +} diff --git a/.jshintrc b/.jshintrc new file mode 100644 index 0000000..4572e5d --- /dev/null +++ b/.jshintrc @@ -0,0 +1,16 @@ +{ + "bitwise": true, + "browser": true, + "curly": true, + "eqeqeq": true, + "esnext": true, + "latedef": true, + "noarg": true, + "node": true, + "strict": true, + "undef": true, + "unused": true, + "globals": { + "angular": false + } +} diff --git a/.yo-rc.json b/.yo-rc.json new file mode 100644 index 0000000..6589676 --- /dev/null +++ b/.yo-rc.json @@ -0,0 +1,11 @@ +{ + "generator-karma": { + "base-path": "../", + "frameworks": "jasmine", + "browsers": "PhantomJS", + "app-files": "app/scripts/**/*.js", + "files-comments": "bower:js,endbower", + "bower-components-path": "bower_components", + "test-files": "test/mock/**/*.js,test/spec/**/*.js" + } +} \ No newline at end of file diff --git a/CNAME b/CNAME deleted file mode 100644 index 8003405..0000000 --- a/CNAME +++ /dev/null @@ -1 +0,0 @@ -hackbrexit.org diff --git a/Gruntfile.js b/Gruntfile.js new file mode 100644 index 0000000..50d1140 --- /dev/null +++ b/Gruntfile.js @@ -0,0 +1,483 @@ +// Generated on 2016-08-24 using generator-angular 0.15.1 +'use strict'; + +// # Globbing +// for performance reasons we're only matching one level down: +// 'test/spec/{,*/}*.js' +// use this if you want to recursively match all subfolders: +// 'test/spec/**/*.js' + +module.exports = function (grunt) { + + // Time how long tasks take. Can help when optimizing build times + require('time-grunt')(grunt); + + // Automatically load required Grunt tasks + require('jit-grunt')(grunt, { + useminPrepare: 'grunt-usemin', + ngtemplates: 'grunt-angular-templates', + cdnify: 'grunt-google-cdn' + }); + + // Configurable paths for the application + var appConfig = { + app: require('./bower.json').appPath || 'app', + dist: 'dist' + }; + + // Define the configuration for all the tasks + grunt.initConfig({ + + // Project settings + yeoman: appConfig, + + // Watches files for changes and runs tasks based on the changed files + watch: { + bower: { + files: ['bower.json'], + tasks: ['wiredep'] + }, + js: { + files: ['<%= yeoman.app %>/scripts/{,*/}*.js'], + tasks: ['newer:jshint:all', 'newer:jscs:all'], + options: { + livereload: '<%= connect.options.livereload %>' + } + }, + jsTest: { + files: ['test/spec/{,*/}*.js'], + tasks: ['newer:jshint:test', 'newer:jscs:test', 'karma'] + }, + styles: { + files: ['<%= yeoman.app %>/styles/{,*/}*.css'], + tasks: ['newer:copy:styles', 'postcss'] + }, + gruntfile: { + files: ['Gruntfile.js'] + }, + livereload: { + options: { + livereload: '<%= connect.options.livereload %>' + }, + files: [ + '<%= yeoman.app %>/{,*/}*.html', + '.tmp/styles/{,*/}*.css', + '<%= yeoman.app %>/images/{,*/}*.{png,jpg,jpeg,gif,webp,svg}' + ] + } + }, + + // The actual grunt server settings + connect: { + options: { + port: 9000, + // Change this to '0.0.0.0' to access the server from outside. + hostname: 'localhost', + livereload: 35729 + }, + livereload: { + options: { + open: true, + middleware: function (connect) { + return [ + connect.static('.tmp'), + connect().use( + '/bower_components', + connect.static('./bower_components') + ), + connect().use( + '/app/styles', + connect.static('./app/styles') + ), + connect.static(appConfig.app) + ]; + } + } + }, + test: { + options: { + port: 9001, + middleware: function (connect) { + return [ + connect.static('.tmp'), + connect.static('test'), + connect().use( + '/bower_components', + connect.static('./bower_components') + ), + connect.static(appConfig.app) + ]; + } + } + }, + dist: { + options: { + open: true, + base: '<%= yeoman.dist %>' + } + } + }, + + // Make sure there are no obvious mistakes + jshint: { + options: { + jshintrc: '.jshintrc', + reporter: require('jshint-stylish') + }, + all: { + src: [ + 'Gruntfile.js', + '<%= yeoman.app %>/scripts/{,*/}*.js' + ] + }, + test: { + options: { + jshintrc: 'test/.jshintrc' + }, + src: ['test/spec/{,*/}*.js'] + } + }, + + // Make sure code styles are up to par + jscs: { + options: { + config: '.jscsrc', + verbose: true + }, + all: { + src: [ + 'Gruntfile.js', + '<%= yeoman.app %>/scripts/{,*/}*.js' + ] + }, + test: { + src: ['test/spec/{,*/}*.js'] + } + }, + + // Empties folders to start fresh + clean: { + dist: { + files: [{ + dot: true, + src: [ + '.tmp', + '<%= yeoman.dist %>/{,*/}*', + '!<%= yeoman.dist %>/.git{,*/}*' + ] + }] + }, + server: '.tmp' + }, + + // Add vendor prefixed styles + postcss: { + options: { + processors: [ + require('autoprefixer-core')({browsers: ['last 1 version']}) + ] + }, + server: { + options: { + map: true + }, + files: [{ + expand: true, + cwd: '.tmp/styles/', + src: '{,*/}*.css', + dest: '.tmp/styles/' + }] + }, + dist: { + files: [{ + expand: true, + cwd: '.tmp/styles/', + src: '{,*/}*.css', + dest: '.tmp/styles/' + }] + } + }, + + // Automatically inject Bower components into the app + wiredep: { + app: { + src: ['<%= yeoman.app %>/index.html'], + ignorePath: /\.\.\// + }, + test: { + devDependencies: true, + src: '<%= karma.unit.configFile %>', + ignorePath: /\.\.\//, + fileTypes:{ + js: { + block: /(([\s\t]*)\/{2}\s*?bower:\s*?(\S*))(\n|\r|.)*?(\/{2}\s*endbower)/gi, + detect: { + js: /'(.*\.js)'/gi + }, + replace: { + js: '\'{{filePath}}\',' + } + } + } + } + }, + + // Renames files for browser caching purposes + filerev: { + dist: { + src: [ + '<%= yeoman.dist %>/scripts/{,*/}*.js', + '<%= yeoman.dist %>/styles/{,*/}*.css', + '<%= yeoman.dist %>/images/{,*/}*.{png,jpg,jpeg,gif,webp,svg}', + '<%= yeoman.dist %>/styles/fonts/*' + ] + } + }, + + // Reads HTML for usemin blocks to enable smart builds that automatically + // concat, minify and revision files. Creates configurations in memory so + // additional tasks can operate on them + useminPrepare: { + html: '<%= yeoman.app %>/index.html', + options: { + dest: '<%= yeoman.dist %>', + flow: { + html: { + steps: { + js: ['concat', 'uglifyjs'], + css: ['cssmin'] + }, + post: {} + } + } + } + }, + + // Performs rewrites based on filerev and the useminPrepare configuration + usemin: { + html: ['<%= yeoman.dist %>/{,*/}*.html'], + css: ['<%= yeoman.dist %>/styles/{,*/}*.css'], + js: ['<%= yeoman.dist %>/scripts/{,*/}*.js'], + options: { + assetsDirs: [ + '<%= yeoman.dist %>', + '<%= yeoman.dist %>/images', + '<%= yeoman.dist %>/styles' + ], + patterns: { + js: [[/(images\/[^''""]*\.(png|jpg|jpeg|gif|webp|svg))/g, 'Replacing references to images']] + } + } + }, + + // The following *-min tasks will produce minified files in the dist folder + // By default, your `index.html`'s will take care of + // minification. These next options are pre-configured if you do not wish + // to use the Usemin blocks. + // cssmin: { + // dist: { + // files: { + // '<%= yeoman.dist %>/styles/main.css': [ + // '.tmp/styles/{,*/}*.css' + // ] + // } + // } + // }, + // uglify: { + // dist: { + // files: { + // '<%= yeoman.dist %>/scripts/scripts.js': [ + // '<%= yeoman.dist %>/scripts/scripts.js' + // ] + // } + // } + // }, + // concat: { + // dist: {} + // }, + + imagemin: { + dist: { + files: [{ + expand: true, + cwd: '<%= yeoman.app %>/images', + src: '{,*/}*.{png,jpg,jpeg,gif}', + dest: '<%= yeoman.dist %>/images' + }] + } + }, + + svgmin: { + dist: { + files: [{ + expand: true, + cwd: '<%= yeoman.app %>/images', + src: '{,*/}*.svg', + dest: '<%= yeoman.dist %>/images' + }] + } + }, + + htmlmin: { + dist: { + options: { + collapseWhitespace: true, + conservativeCollapse: true, + collapseBooleanAttributes: true, + removeCommentsFromCDATA: true + }, + files: [{ + expand: true, + cwd: '<%= yeoman.dist %>', + src: ['*.html'], + dest: '<%= yeoman.dist %>' + }] + } + }, + + ngtemplates: { + dist: { + options: { + module: 'hackbrexitgithubioApp', + htmlmin: '<%= htmlmin.dist.options %>', + usemin: 'scripts/scripts.js' + }, + cwd: '<%= yeoman.app %>', + src: 'views/{,*/}*.html', + dest: '.tmp/templateCache.js' + } + }, + + // ng-annotate tries to make the code safe for minification automatically + // by using the Angular long form for dependency injection. + ngAnnotate: { + dist: { + files: [{ + expand: true, + cwd: '.tmp/concat/scripts', + src: '*.js', + dest: '.tmp/concat/scripts' + }] + } + }, + + // Replace Google CDN references + cdnify: { + dist: { + html: ['<%= yeoman.dist %>/*.html'] + } + }, + + // Copies remaining files to places other tasks can use + copy: { + dist: { + files: [{ + expand: true, + dot: true, + cwd: '<%= yeoman.app %>', + dest: '<%= yeoman.dist %>', + src: [ + '*.{ico,png,txt}', + '*.html', + 'images/{,*/}*.{webp}', + 'styles/fonts/{,*/}*.*' + ] + }, { + expand: true, + cwd: '.tmp/images', + dest: '<%= yeoman.dist %>/images', + src: ['generated/*'] + }, { + expand: true, + cwd: 'bower_components/bootstrap/dist', + src: 'fonts/*', + dest: '<%= yeoman.dist %>' + }] + }, + styles: { + expand: true, + cwd: '<%= yeoman.app %>/styles', + dest: '.tmp/styles/', + src: '{,*/}*.css' + } + }, + + // Run some tasks in parallel to speed up the build process + concurrent: { + server: [ + 'copy:styles' + ], + test: [ + 'copy:styles' + ], + dist: [ + 'copy:styles', + 'imagemin', + 'svgmin' + ] + }, + + // Test settings + karma: { + unit: { + configFile: 'test/karma.conf.js', + singleRun: true + } + } + }); + + + grunt.registerTask('serve', 'Compile then start a connect web server', function (target) { + if (target === 'dist') { + return grunt.task.run(['build', 'connect:dist:keepalive']); + } + + grunt.task.run([ + 'clean:server', + 'wiredep', + 'concurrent:server', + 'postcss:server', + 'connect:livereload', + 'watch' + ]); + }); + + grunt.registerTask('server', 'DEPRECATED TASK. Use the "serve" task instead', function (target) { + grunt.log.warn('The `server` task has been deprecated. Use `grunt serve` to start a server.'); + grunt.task.run(['serve:' + target]); + }); + + grunt.registerTask('test', [ + 'clean:server', + 'wiredep', + 'concurrent:test', + 'postcss', + 'connect:test', + 'karma' + ]); + + grunt.registerTask('build', [ + 'clean:dist', + 'wiredep', + 'useminPrepare', + 'concurrent:dist', + 'postcss', + 'ngtemplates', + 'concat', + 'ngAnnotate', + 'copy:dist', + 'cdnify', + 'cssmin', + 'uglify', + 'filerev', + 'usemin', + 'htmlmin' + ]); + + grunt.registerTask('default', [ + 'newer:jshint', + 'newer:jscs', + 'test', + 'build' + ]); +}; diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 7cdab62..0000000 --- a/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2016 HackBrexit - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/README.md b/README.md index 561d746..5db075d 100644 --- a/README.md +++ b/README.md @@ -1,50 +1,12 @@ -# hackbrexit.github.io +# hackbrexitgithubio -List projects & team members from the July 2016 Hackathon +This project is generated with [yo angular generator](https://github.com/yeoman/generator-angular) +version 0.15.1. -Beyond Brexit: Creating dialogue and action for a country divided +## Build & development - +Run `grunt` for building and `grunt serve` for preview. -Brexit is one of the most controversial and seismic political events in the UK’s recent history. Yet throughout the pre-referendum campaigns and aftermath of Brexit many questions remain unanswered and the future unclear. +## Testing -Regardless of whether you voted in or out, this two day event is open to the tech and non-tech community to join forces to create dialogue and action beyond Brexit. - - -We invite you to hack three key themes: - -* Truth, fiction, & accountability -* Tolerance & prejudice -* Effective organising & campaigning - -## Dependencies - -* Jekyll -* Bootstrap -* FontAwesome -* GitHub Pages - -## Setup - -* `vagrant up` -* `vagrant ssh` -* `cd /vagrant` -* `jekyll serve --force_polling` -* Visit http://192.168.51.100:4000/ - -## Project List - -* Pop! Outside the eco-chamber -* Ministers Under the Influence -* Campaign.ninja -* The Other Voices -* Brex Lex -* Exit Gap -* I Streetwatch -* Brexit Net -* What The Fact? -* Fixit - -## Created by - -* Tanya Powell, Eddie Jaoude, Hyewon Kim +Running `grunt test` will run the unit tests with karma. diff --git a/Vagrantfile b/Vagrantfile deleted file mode 100644 index 435f81e..0000000 --- a/Vagrantfile +++ /dev/null @@ -1,59 +0,0 @@ -################################################## -# Generated by phansible.com -################################################## - -#If your Vagrant version is lower than 1.5, you can still use this provisioning -#by commenting or removing the line below and providing the config.vm.box_url parameter, -#if it's not already defined in this Vagrantfile. Keep in mind that you won't be able -#to use the Vagrant Cloud and other newer Vagrant features. -Vagrant.require_version ">= 1.5" - -# Check to determine whether we're on a windows or linux/os-x host, -# later on we use this to launch ansible in the supported way -# source: https://stackoverflow.com/questions/2108727/which-in-ruby-checking-if-program-exists-in-path-from-ruby -def which(cmd) - exts = ENV['PATHEXT'] ? ENV['PATHEXT'].split(';') : [''] - ENV['PATH'].split(File::PATH_SEPARATOR).each do |path| - exts.each { |ext| - exe = File.join(path, "#{cmd}#{ext}") - return exe if File.executable? exe - } - end - return nil -end -Vagrant.configure("2") do |config| - - config.vm.provider :virtualbox do |v| - v.name = "hackbrexit" - v.customize [ - "modifyvm", :id, - "--name", "hackbrexit", - "--memory", 512, - "--natdnshostresolver1", "on", - "--cpus", 1, - ] - end - - config.vm.box = "ubuntu/wily64" - - config.vm.network :private_network, ip: "192.168.51.100" - config.ssh.forward_agent = true - - ############################################################# - # Ansible provisioning (you need to have ansible installed) - ############################################################# - - - if which('ansible-playbook') - config.vm.provision "ansible" do |ansible| - ansible.playbook = "ansible/playbook.yml" - ansible.inventory_path = "ansible/inventories/dev" - ansible.limit = 'all' - end - else - config.vm.provision :shell, path: "ansible/windows.sh", args: ["default"] - end - - - config.vm.synced_folder "./", "/vagrant", type: "nfs" -end diff --git a/_Open_source_accelerator/2016-07-24-HackBrexit.md b/_Open_source_accelerator/2016-07-24-HackBrexit.md deleted file mode 100644 index 64f75ff..0000000 --- a/_Open_source_accelerator/2016-07-24-HackBrexit.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -layout: default -name: HackBrexit Open source accelerator -description: Deatils on the Open source accelerator programme and projects supported -display_date: August 2016 -github_url: https://github.com/HackBrexit/hackbrexit.github.io -status: active ---- diff --git a/_Open_source_accelerator/2016-07-24-MinistersUndertheInfluence.md b/_Open_source_accelerator/2016-07-24-MinistersUndertheInfluence.md deleted file mode 100644 index 1e10825..0000000 --- a/_Open_source_accelerator/2016-07-24-MinistersUndertheInfluence.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -layout: default -name: Ministers Under the Influence -description: One stop shop for all the publicly available data on money and politics -display_date: July 2016 -github_url: https://github.com/HackBrexit/MinistersUnderTheInfluence -presentation_url: https://drive.google.com/open?id=1-CsMiIhywwpsGFKeEBzOfc9a6BTBb8nk284ctJra77o -introduction_url: bVbTzTd2ZRs -status: active ---- diff --git a/_Open_source_accelerator/2016-07-24-WhatTheFact.md b/_Open_source_accelerator/2016-07-24-WhatTheFact.md deleted file mode 100644 index 937832f..0000000 --- a/_Open_source_accelerator/2016-07-24-WhatTheFact.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -layout: default -name: What The Fact? -description: Browser plugin that gives you fact-checking information about what you're reading -display_date: July 2016 -github_url: https://github.com/HackBrexit/WhatTheFact -presentation_url: https://drive.google.com/open?id=1MfPLxDjFKbsOvzAj-_VtSSUmRh5AQr47SvQQeydYFJk -introduction_url: MrPCj9Qv3nE -status: active ---- diff --git a/_Open_source_accelerator/overview.md b/_Open_source_accelerator/overview.md deleted file mode 100644 index 1ec0b98..0000000 --- a/_Open_source_accelerator/overview.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: Hack Brexit open source accelerator overview ---- -# Introduction - Overview - -### What is the accelerator all about? - -* A three month programme that takes 2 of the 10 projects created during Hack Brexit weekend - -* Run monthly meetings for the teams to present and discuss their projects progress, hosted by ThoughtWorks London - -* Help source additional volunteers to work with the teams on the projects - -* The organising committee will be on hand to provide planning and process assistance over the whole 3 months, and tap into expertise from ThoughtWorks and Code First: Girls community - -* The organising committee will manage external communications for the open source accelerator to help spread the word - -* At the end of 3 months we will run a final external presentation event with external attendees, we will analyse the progress and development of the project along with its future potential for continuing to grow - -* Connect the team members to the wider Hack Brexit meetup community - -### Why are we doing this? - -We want to continue from the success of the Hack Brexit hackathon on the 23-4 July to bring together technical and non-technical people to create tech solutions to drive dialog, unity and positive action beyond Brexit. We want to sustainably support and scale up projects that have a clear positive impact on society and respond to one of the three key themes we chose for the weekend: 1. Truth, fiction, & accountability; 2. Tolerance & prejudice; 3. Effective organising & campaigning. - -### T&Cs for accelerator - -* An open source project publicly available & accessible to all -* Projects are created in a repository under the Hack Brexit public repository with an MIT License -* Projects have an IP that is open to all & can be used by anyone -* Projects speak to one of the three key themes identified at the Hack (Truth, Fiction & Accountability; Tolerance & prejudice; Effective organising & campaigning) or a future theme as agreed by the community -* Commitment to work with a group of volunteers on the project for a duration of 3 months -* Work alongside your project team volunteers & the Hack Brexit organisers to plan the outcomes for at least 3 months -* Be a project that has scope to continue to be worked on by others in the future - - -We'll be updating this page with further information as the projects develop, so do watch this space! - -### Sign up to join our mailing list here! - -
- diff --git a/_config.yml b/_config.yml deleted file mode 100644 index 6513f38..0000000 --- a/_config.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Welcome to Jekyll! -# -# This config file is meant for settings that affect your whole blog, values -# which you are expected to set up once and rarely need to edit after that. -# For technical reasons, this file is *NOT* reloaded automatically when you use -# 'jekyll serve'. If you change this file, please restart the server process. - -# Site settings -host: 0.0.0.0 -title: HackBrexit -email: eddie@jaoudestudios.com -description: -baseurl: "" # the subpath of your site, e.g. /blog -url: "https://hackbrexit.github.io" # the base hostname & protocol for your site -twitter_username: hackbrexit -github_username: hackbrexit - -# Build settings -markdown: kramdown diff --git a/_includes/foot.html b/_includes/foot.html deleted file mode 100644 index fcb5a6e..0000000 --- a/_includes/foot.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - - -