├── .github └── PULL_REQUEST_TEMPLATE.md ├── .gitignore ├── .travis.yml ├── CONTRIBUTING.md ├── Gemfile ├── Gemfile.lock ├── README.md ├── _50p_events ├── 2018.md ├── AI-finance-roundtable.md ├── blockchain-workshop.md ├── fintech-security.md ├── public-lecture-zooko.md ├── security-workshop.md └── upi-workshop.md ├── _anthillinside_events ├── 2017-dec-bangalore-lecture.md ├── 2017-decentralized-ai-applications.md ├── 2017-miniconf-pune.md ├── 2017-nlp-workshop.md ├── 2017-nov-data-science-from-scratch.md ├── 2017-nov-leapfrog-in-deep-learning-workshop.md ├── 2017-sep-bangalore-meetup.md ├── 2017.md ├── 2018-computer-vision-workshop.md ├── 2018-july-dl-bootcamp.md ├── 2018-july-dl-bootcamp2.md ├── 2018-july-dl-framework.md ├── 2018-july-nlp-bootcamp.md ├── 2018-may-ai-in-real-life-meetup.md ├── 2018-nlp-bootcamp.md ├── 2018.md └── 2019.md ├── _config.yml ├── _data ├── cities.yml ├── conferences.yml ├── events.yml ├── past-events.yml └── sponsors.yml ├── _fifthelephant_events ├── 2017-aug-dl-and-ml-for-cv-workshop.md ├── 2017-aug-ds-bootcamp.md ├── 2017-dec-recommendation-systems-workshop.md ├── 2017-mlaas-workshop.md ├── 2017-nov-artds-workshop.md ├── 2017-nov-hackermath-workshop.md ├── 2017-nov-interactive-viz-workshop.md ├── 2017-sep-dl-bootcamp.md ├── 2017.md ├── 2018-hybrid-recommendation-systems.md ├── 2018-june-building-data-products-open-house.md ├── 2018-june-data-hacknight.md ├── 2018-june-fraud-detection-meetup.md ├── 2018-logisticsconf.md ├── 2018-mar-dl-bootcamp.md ├── 2018-math-for-data-science-ii.md ├── 2018-math-for-data-science.md ├── 2018-sagemaker-workshop-bangalore-2.md ├── 2018-sagemaker-workshop-bangalore.md ├── 2018-sagemaker-workshop-chennai.md ├── 2018-sagemaker-workshop-delhi.md ├── 2018-sagemaker-workshop-hyderabad.md ├── 2018-sagemaker-workshop-mumbai.md ├── 2018-sagemaker-workshop-pune.md ├── 2018.md ├── 2019-winter.md └── 2019.md ├── _fragments_events ├── 2017-build-pipelines-workshop.md ├── 2017-sep-chennai-meetup.md ├── 2017.md ├── 2019-ahmedabad.md └── 2019.md ├── _includes ├── accommodation_card.html ├── accommodation_section.html ├── analytics.html ├── announcements_section.html ├── archive_section.html ├── assign_all_events.html ├── assign_featured_events.html ├── assign_past_events.html ├── assign_unfeatured_events.html ├── blog_section.html ├── boxoffice_js.html ├── boxoffice_tickets_section.html ├── childcare_announcement.html ├── community_space_announcement.html ├── content_section.html ├── discussions.html ├── event_card.html ├── event_header_section.html ├── featured_event_card.html ├── featured_speakers_section.html ├── featured_video.html ├── flickr_album.html ├── food_court_announcement.html ├── footer.html ├── hasjob_widget_section.html ├── instructors_section.html ├── navbar_site.html ├── office_hours_announcement.html ├── outreach_js.html ├── outreach_sponsorship_section.html ├── past_speakers_section.html ├── photo_album.html ├── proposal_section.html ├── proposed_speakers_section.html ├── randomize.html ├── recommend_speaker_announcement.html ├── related_events_section.html ├── rsvp.html ├── schedule_section.html ├── sidebar_site.html ├── sponsor_section.html ├── subbanner_devweek.html ├── submitted_proposal.html ├── testimonials.html ├── venue_section.html └── workshop_header_section.html ├── _jsfoo_events ├── 2017-nov-pwa-workshop.md ├── 2017-oct-enterprise-walmart-meetup.md ├── 2017-sept-hacknight.md ├── 2017-webvr-workshop.md ├── 2017.md ├── 2018-build-with-alexa.md ├── 2018-feb-hacknight.md ├── 2018-paceup-with-vue.md ├── 2018-secure-web-development.md ├── 2018.md ├── 2019-coimbatore.md ├── 2019-graphql-workshop-pune.md ├── 2019-pune.md ├── 2019-voice-enabled-with-alexa.md ├── 2019-vueday.md ├── 2019.md └── reactjs-walmart-meetup.md ├── _layouts ├── base.html ├── document.html ├── event.html ├── redirect.html ├── sponsorship.html └── workshop.html ├── _metarefresh_events ├── 2017.md ├── 2018-fidelity-workshop.md ├── 2018.md ├── cms-conf-2017.md └── cms-strategy-open-house.md ├── _reactfoo_events ├── 2017-react-beginners-workshop.md ├── 2017-react-native-workshop.md ├── 2017.md ├── 2018-delhi.md ├── 2018-graphql-apollo-workshop-blr.md ├── 2018-hyderabad-react-0-to-100-workshop.md ├── 2018-hyderabad.md ├── 2018-july-react-beginner-blr.md ├── 2018-mumbai-graphql-apollo-workshop.md ├── 2018-mumbai.md ├── 2018-pune-react-0-to-100.md ├── 2018-pune-react-native-workshop.md ├── 2018-pune.md ├── 2018-react-0-100-delhi.md ├── 2018-react-0to100-delhi.md ├── 2019-delhi.md └── 2019.md ├── _rootconf_events ├── 2017-cloud-server-management-miniconf-delhi-ncr.md ├── 2017-cloud-server-management-miniconf-mumbai.md ├── 2017-cloud-server-management-miniconf.md ├── 2018-automation-with-ansible.md ├── 2018-designing-microservices.md ├── 2018-designing-restful-apis.md ├── 2018-diversity-meetup-walmart.md ├── 2018-docker-meetup-tf.md ├── 2018-kubernetes-201.md ├── 2018-kubernetes-pune.md ├── 2018-monitoring-servers.md ├── 2018-scalable-applications-openfaas.md ├── 2018-security-clinic.md ├── 2018-tor-meetup-mumbai.md ├── 2018-unittests-for-python.md ├── 2018.md ├── 2019-kubernetes-201.md ├── 2019.md ├── legacy-code-open-house.md └── sept-2017-meetup.md ├── _sass ├── _base.scss ├── _boxoffice.scss ├── _button.scss ├── _color.scss ├── _helper.scss ├── _main.scss ├── _navbar.scss ├── _outreach.scss ├── _testimonial.scss ├── _typography.scss ├── bulma │ ├── base │ │ ├── _all.sass │ │ ├── generic.sass │ │ ├── helpers.sass │ │ └── minireset.sass │ ├── bulma.scss │ ├── components │ │ ├── _all.sass │ │ ├── breadcrumb.sass │ │ ├── card.sass │ │ ├── level.sass │ │ ├── media.sass │ │ ├── menu.sass │ │ ├── message.sass │ │ ├── modal.sass │ │ ├── nav.sass │ │ ├── pagination.sass │ │ ├── panel.sass │ │ └── tabs.sass │ ├── elements │ │ ├── _all.sass │ │ ├── box.sass │ │ ├── button.sass │ │ ├── content.sass │ │ ├── form.sass │ │ ├── icon.sass │ │ ├── image.sass │ │ ├── notification.sass │ │ ├── other.sass │ │ ├── progress.sass │ │ ├── table.sass │ │ ├── tag.sass │ │ └── title.sass │ ├── grid │ │ ├── _all.sass │ │ ├── columns.sass │ │ └── tiles.sass │ ├── layout │ │ ├── _all.sass │ │ ├── footer.sass │ │ ├── hero.sass │ │ └── section.sass │ └── utilities │ │ ├── _all.sass │ │ ├── animations.sass │ │ ├── controls.sass │ │ ├── derived-variables.sass │ │ ├── functions.sass │ │ ├── initial-variables.sass │ │ ├── mixins.sass │ │ └── variables.sass ├── bulma_material_overrides.scss ├── bulma_material_variables.scss ├── navbar_dropdown.scss ├── photo-album.scss ├── proposal_card.scss └── schedule.scss ├── api ├── all.json ├── cities.json ├── conferences.json └── events.json ├── configs ├── 50p_config.yml ├── anthillinside_config.yml ├── fifthelephant_config.yml ├── fragments_config.yml ├── jsfoo_config.yml ├── metarefresh_config.yml ├── reactfoo_config.yml └── rootconf_config.yml ├── css ├── font-awesome.min.css ├── jquery.sidr.2.2.1.min.css ├── leaflet.css ├── main.scss └── mapbox-gl-0.39.1.css ├── deploy ├── deploy.sh ├── gulpfile.js ├── id_rsa.enc └── package.json ├── fonts ├── FontAwesome.otf ├── fontawesome-webfont.eot ├── fontawesome-webfont.svg ├── fontawesome-webfont.ttf ├── fontawesome-webfont.woff └── fontawesome-webfont.woff2 ├── images ├── 50p-logo.png ├── 50p-logo.svg ├── anthillinside-logo.svg ├── extras │ └── mlr-whitefield-venue-map.png ├── fifthelephant-logo.png ├── fifthelephant-logo.svg ├── fragments-logo.gif ├── fragments-logo.svg ├── hg-favicon.ico ├── jsfoo-logo.png ├── meta │ ├── anthillinside.png │ ├── fifthelephant.png │ └── fragments.png ├── metarefresh-logo.png ├── reactfoo-logo.png ├── rootconf-logo.png └── touch │ ├── anthillinside-icon-192.png │ ├── fifthelephant-icon-192.png │ ├── jsfoo-icon-300.png │ └── metarefresh-icon-192.png ├── img ├── camera-icon.svg ├── layers-2x.png ├── layers.png ├── marker-icon-2x.png ├── marker-icon.png ├── marker-shadow.png ├── speaker-icon.svg ├── temporary-img.png ├── ticket-icon.svg └── volunteer-icon.svg ├── index.html ├── js ├── feednami-client-v1.1.js ├── jquery-3.2.1.min.js ├── jquery-appear.js ├── jquery.sidr-2.2.1.min.js ├── leaflet.js ├── mapbox-gl.0.39.1.min.js ├── mustache.min.js ├── proposal.js ├── ractive.min.js ├── schedule.js └── siema.min.js ├── manifest.json ├── package-lock.json ├── pages ├── code-of-conduct.html ├── live.html ├── mlaas.md ├── newsletter.html └── nlp-workshop.md ├── requirements.txt └── tests ├── after_build ├── steps │ └── api.py └── validation.feature └── before_build ├── steps ├── conferences.py └── events.py └── validation.feature /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | **Event title:** 4 | 5 | **Organizer's name:** 6 | 7 | cc @hasgeek/events-review 8 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | _site 2 | .sass-cache 3 | .jekyll-metadata 4 | Gemfile.lock 5 | node_modules 6 | .DS_Store 7 | .bundle 8 | vendor 9 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | dist: trusty 2 | language: ruby 3 | cache: bundler 4 | rvm: 5 | - 2.4.1 6 | before_install: 7 | - nvm install node 8 | before_script: 9 | - pip install --user -r requirements.txt 10 | script: 11 | - behave tests/before_build 12 | - gem install bundler 13 | - bundle install 14 | - bundle exec jekyll build 15 | - behave tests/after_build 16 | - echo "If the build fails, scroll up to look for failed test cases" 17 | deploy: 18 | - provider: script 19 | script: deploy/deploy.sh fragments 20 | skip_cleanup: true 21 | on: 22 | branch: master 23 | - provider: script 24 | script: deploy/deploy.sh anthillinside 25 | skip_cleanup: true 26 | on: 27 | branch: master 28 | - provider: script 29 | script: deploy/deploy.sh reactfoo 30 | skip_cleanup: true 31 | on: 32 | branch: master 33 | - provider: script 34 | script: deploy/deploy.sh fifthelephant 35 | skip_cleanup: true 36 | on: 37 | branch: master 38 | - provider: script 39 | script: deploy/deploy.sh metarefresh 40 | skip_cleanup: true 41 | on: 42 | branch: master 43 | - provider: script 44 | script: deploy/deploy.sh jsfoo 45 | skip_cleanup: true 46 | on: 47 | branch: master 48 | - provider: script 49 | script: deploy/deploy.sh rootconf 50 | skip_cleanup: true 51 | on: 52 | branch: master 53 | - provider: script 54 | script: deploy/deploy.sh 50p 55 | skip_cleanup: true 56 | on: 57 | branch: master 58 | - provider: pages 59 | skip_cleanup: true 60 | github_token: "$GITHUB_TOKEN" 61 | target_branch: gh-pages 62 | on: 63 | branch: master 64 | addons: 65 | ssh_known_hosts: e2e.hasgeek.com 66 | 67 | notifications: 68 | email: false 69 | slack: 70 | - hasgeek:HDCoMDj3T4ICB59qFFVorCG8 71 | - friendsofhasgeek:3bLViYSzhfaThJovFYCVD3fX 72 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | ## Build instructions 2 | 3 | Start by cloning this repository into your computer 4 | 5 | `git clone https://github.com/hasgeek/events.git` 6 | 7 | Install `rbenv` to manage your local ruby version. If you haven't configured this, you'll get write permission errors on MacOS as Apple has implemented System Integrity Protection, preventing write access to certain system files. 8 | 9 | `rbenv` can be install by running `brew install rbenv` if you have homebrew installed, otherwise run 10 | `curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash` 11 | 12 | Run `rbenv version` to check which version of Ruby you're running. If it returns system, you'll need to install or switch to a version of Ruby for local use. 13 | 14 | This repo needs ruby version 2.3.3, therefore run `rbenv install 2.3.3`. 15 | 16 | Switch to ruby 2.3.3 to use locally, `rbenv local 2.3.3` 17 | 18 | Run `gem install bundler` to install the ruby gem bundler 19 | 20 | Navigate to the cloned repository with `cd`. if you cloned it in Documents, you'll get there with `cd Documents/events`. 21 | 22 | Run `bundle install` to let the bundler automatically install all required packages for the build. 23 | 24 | Go grab a cup of coffee while this is running, it could take a while. Next, when you're in the `events` folder, run `bundle exec jekyll serve`. This will create a local server for you, which can be accessed by typing `http://localhost:4000/events/` 25 | 26 | Ta-da! -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source "https://rubygems.org" 2 | ruby RUBY_VERSION 3 | 4 | # If you want to use GitHub Pages, remove the "gem "jekyll"" above and 5 | # uncomment the line below. To upgrade, run `bundle update github-pages`. 6 | gem "github-pages", group: :jekyll_plugins 7 | 8 | # Windows does not include zoneinfo files, so bundle the tzinfo-data gem 9 | gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby] 10 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [![Build Status](https://travis-ci.org/hasgeek/events.svg?branch=master)](https://travis-ci.org/hasgeek/events) 2 | 3 | # HasGeek Events 4 | 5 | A database of tech events in India. 6 | 7 | 8 | ## What kind of events can be listed? 9 | (This is subject to change) 10 | 11 | * Developer-focused events in India 12 | 13 | 14 | ## How do add my event? 15 | Add your event details to the `_data/events.yml` file and send a Pull Request to this repository. 16 | 17 | Travis will build the branch and run some tests to make sure the data is in the right format and all the mandatory fields exists. 18 | 19 | The fields are as follows (all mandatory): 20 | 21 | 22 | * name: short-hand-name-with-hyphens 23 | * title: Full name of the event in <80 characters (In [sentence case](https://www.thoughtco.com/sentence-case-titles-1691944)) 24 | * city: A valid city from the list at `_data/cities.yml` 25 | * venue: Venue name in <40 characters 26 | * start_time: YYYY-MM-DD HH:MM (24h format in IST) 27 | * end_time: YYYY-MM-DD HH:MM (24h format in IST) 28 | * url: A link to a valid URL for the event. 29 | * blurb: A short description of the event. Must be <300 characters. 30 | 31 | 32 | ## How will it get approved? 33 | Someone from our team will review the Pull Request once it is sent. All communication will be in public on the PR itself. 34 | 35 | ## Support 36 | If you have any questions, you can open reach us on the [Friends of HasGeek Slack](https://friends.hasgeek.com) team. Ping @karthik or @dunebuggie there. 37 | 38 | 39 | ## API 40 | (This is work in progress) 41 | You can fetch a list of all the events here [https://hasgeek.github.io/events/api/all.json](https://hasgeek.github.io/events/api/all.json) 42 | 43 | ## Build instructions 44 | 45 | Start by cloning this repository into your computer 46 | 47 | `git clone https://github.com/hasgeek/events.git` 48 | 49 | Install `rbenv` to manage your local ruby version. If you haven't configured this, you'll get write permission errors on MacOS as Apple has implemented System Integrity Protection, preventing write access to certain system files. 50 | 51 | `rbenv` can be install by running `brew install rbenv` if you have homebrew installed, otherwise run 52 | `curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash` 53 | 54 | Run `rbenv version` to check which version of Ruby you're running. If it returns system, you'll need to install or switch to a version of Ruby for local use. 55 | 56 | This repo needs ruby version 2.3.3, therefore run `rbenv install 2.3.3`. 57 | 58 | Switch to ruby 2.3.3 to use locally, `rbenv local 2.3.3` 59 | 60 | Run `gem install bundler` to install the ruby gem bundler 61 | 62 | Navigate to the cloned repository with `cd`. if you cloned it in Documents, you'll get there with `cd Documents/events`. 63 | 64 | Run `bundle install` to let the bundler automatically install all required packages for the build. 65 | 66 | Go grab a cup of coffee while this is running, it could take a while. Next, when you're in the `events` folder, run `bundle exec jekyll serve`. This will create a local server for you, which can be accessed by typing `http://localhost:4000/events/` 67 | 68 | Ta-da! 69 | -------------------------------------------------------------------------------- /_50p_events/blockchain-workshop.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: workshop 3 | title: "Blockchain workshop" 4 | subtitle: "Learn how to build applications and services using the blockchain and start working with smart contracts to get your applications up and running!" 5 | datelocation: "8 Feb 2018, Bangalore" 6 | city: Bangalore 7 | start_time: 2018-02-08 8 | end_time: 2018-02-09 9 | description: "Learn how to build applications and services using the blockchain and start working with smart contracts to get your applications up and running!" 10 | boxoffice_item_collection: '685e9db7-b62d-4137-895f-f734dc216c4d' 11 | overview: 12 | left_content: | 13 | While blockchain is all the rage right now, there is a process to go from your idea to actually implementing something on it. Learn about how to you can build your Distributed application using the blockchain. You will learn about what the blockchain is and about ethereum. You will also learn how to interact with the blockchain via smart contracts and how we can program them using Solidity. 14 | 15 | #### Why Attend?: 16 | 17 | With ICOs offering a new and exciting way of raising funds and kickstarting your product / company on the blockchain there is greater need for entrepreneurs and developers to better understand the ecosystem and how it works at a programmatic level. Learning about smart contracts helps you get a clearer understanding of the blockchain and how it works and enables you to think about how your decentralized app can work in the current ecosystem. Even if you are not looking at an ICO, learning about the blockchain and smart contracts can help you take the first steps to being a blockchain developer and build one of the many interesting and exciting use cases that can come out the this new technology. 18 | 19 | right_content: | 20 | 21 | #### What will you learn? 22 | 23 | 1. Blockchain technology 24 | 2. Ethereum 25 | 3. Solidity Basics 26 | 4. Hands on with Smart contracts 27 | 5. Some basic examples of common smart contracts use cases. 28 | 29 | #### Prerequisites 30 | 31 | 1. Should be familiar with concept of OOPS and general programming paradigms. 32 | 2. Should have worked with any one of - javascript, C++, python, Java. 33 | 3. Basic understanding of Blockchain tech. 34 | 35 | venue: 36 | label: NIMHANS Convention Center, Bangalore 37 | address: | 38 | Hosur Road, Lakkasandra, Behind Bus Stop, Bengaluru, Karnataka 560029 39 | lat: 12.93891 40 | lng: 77.59533 41 | google_maps_url: https://goo.gl/maps/P5KHgfQTmcB2 42 | --- 43 | -------------------------------------------------------------------------------- /_50p_events/fintech-security.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: event 3 | title: "Security practices in FinTech" 4 | subtitle: "An Open House in collaboration with the Center for Internet and Society to get inputs on drafting regulations for security practices in FinTech." 5 | datelocation: "17 November 2017, Bangalore" 6 | city: Bangalore 7 | start_time: 2017-11-17 8 | end_time: 2017-11-17 9 | description: "An Open House in collaboration with the Center for Internet and Society to get inputs on drafting regulations for security practices in FinTech." 10 | logo: 11 | image_url: /images/50p-logo.png 12 | has_title: true 13 | boxoffice_item_collection: "3f329790-1a3a-4a92-ba8b-668e88dc0fb1" 14 | venue: 15 | label: HasGeek House 16 | lat: 12.9615312 17 | lng: 77.6443048 18 | google_maps_url: https://goo.gl/maps/iJFS8QMJ5p12 19 | announcements: 20 | - title: Take the 50p survey! 21 | text: | 22 | Did you attend 50p in January and July? Interested in attending this edition? Confused by all the payments conferences? [Help improve 50p](https://goo.gl/forms/rYcnQGvvFVXvHeTx1) 23 | 24 | overview: 25 | left_content: | 26 | ### 50p is India's first independent conference on payments and the payment ecosystem. 27 | The prevalence of fintech companies operating in India is growing with new actors entering the sector and traditional actors such as banks beginning to offer digital financial services. The push to digital payments has been particularly strong after the demonetization policy, the development and implementation of Aadhaar and India Stack. Services offered by Fintech firms can range from offering a loan or credit to a digital wallet and digital banking and payment services. 28 | Presently, there is a regulatory gap for many of the fintech services and business models. The Reserve Bank of India has published consultation papers on Peer-to-Peer lending platforms as well as Account Aggregators, but comprehensive regulations, especially those surrounding minimum security practices, have yet to emerge – presenting a critical policy and research window. Furthermore, under Section 43A of the IT Act and its associated Rules, ‘body corporates’ are required to implement reasonably security procedures compliant with ISO27001 or a sectoral standard approved by the Central Government. However, currently such a sectoral standard is absent for the FinTech and Digital Payments space. 29 | The growing prevalence of these fintech technologies and the criticality of security of the same to engender citizen trust, protect rights, and comprehensive national security posture demands debate and discussion. 30 | On November 17th, the HasGeek in collaboration with the Centre for Internet and Society will be holding an Open House from 6pm - 8pm to discuss security practices in the fintech industry. 31 | Pressing questions for discussion include: How secure are these services? What security standards are they adhering to? Who is holding them accountable for adherence to security standards? What can individuals do if there financial data is compromised? 32 | 50p is a conference for practitioners, by practitioners. Tell us about your journey with technology in payments,successes and failures in reaching out to new markets, innovative payment hacks for India, and new developments. We are all eyes and ears. 33 | **[Submit a talk to speak at 50p](https://hasgeek.com/50p/2018/).** 34 | --- 35 | -------------------------------------------------------------------------------- /_50p_events/security-workshop.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hasgeek/events/6b81c80da15e5918e7b06cab28d590e65defa1ef/_50p_events/security-workshop.md -------------------------------------------------------------------------------- /_50p_events/upi-workshop.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: workshop 3 | title: "UPI workshop" 4 | subtitle: "Add payments through UPI to your app or service!" 5 | datelocation: "9 Feb 2018, 10 AM - 2 PM, NIMHANS Convention Center, Bangalore" 6 | city: Bangalore 7 | start_time: 2018-02-08 8 | end_time: 2018-02-09 9 | description: "You’ve worked hard to create an awesome experience for your customers in your app, but you know that the payment experience is sub-optimal. It’s time to change that. Learn how to integrate UPI into your app in this hands-on workshop" 10 | boxoffice_item_collection: '685e9db7-b62d-4137-895f-f734dc216c4d' 11 | venue: 12 | label: NIMHANS Convention Center, Bangalore 13 | address: | 14 | Hosur Road, Lakkasandra, Behind Bus Stop, Bengaluru, Karnataka 560029 15 | lat: 12.93891 16 | lng: 77.59533 17 | google_maps_url: https://goo.gl/maps/P5KHgfQTmcB2 18 | 19 | speakers: 20 | - name: Dilip Jain 21 | byline: Software Developer, JusPay 22 | image_url: https://media.licdn.com/mpr/mpr/shrinknp_400_400/p/3/005/04e/22c/13b5765.jpg 23 | 24 | - name: Harsharanga Patil 25 | byline: Software Development Engineer, JusPay 26 | image_url: https://media.licdn.com/mpr/mpr/shrinknp_400_400/p/5/000/1dc/2c7/075f5a5.jpg 27 | 28 | overview: 29 | left_content: | 30 | With UPI, you can now reduce friction in the payments process where it (almost) looks invisible. In this workshop, we show you how. The workshop will cover the usage of UPI APIs to participants. The Juspay wrapper will be used as an example to run through the workflows in integrating UPI into the app. 31 | 32 | If you'd like to get a sense of the applications of computer vision in e-commerce and interact with practitioners from the industry, this is a great place to be. RSVP now to reserve your spot! 33 | right_content: | 34 | ### Content Outline 35 | - What is UPI 36 | - UPI Payments Flow 37 | - Deep dive into UPI API Suite 38 | - Merchant Payments 39 | - Intent 40 | - WebCollect 41 | - SDK 42 | - Your own handle 43 | - Deep dive into each of other different options available for you to integrate UPI 44 | - Work from product spec to fully working UPI implementation. (With hands on help from the Juspay team) 45 | - Plugging UPI into your stack 46 | - Designing flows 47 | - Integrating APIs 48 | - Show and tell of what was built + Q&A + tips 49 | 50 | 51 | --- 52 | -------------------------------------------------------------------------------- /_anthillinside_events/2017-sep-bangalore-meetup.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: workshop 3 | title: "Meetup on the uses of computer vision in e-commerce" 4 | subtitle: "A meetup in Bangalore where we discuss some of the uses of computer vision in e-commerce" 5 | datelocation: "9 Sep 2017, 11 AM - 2 PM, WalmartLabs, Bangalore" 6 | city: Bangalore 7 | start_time: 2017-09-09 8 | end_time: 2017-09-09 9 | description: "A meetup in Bangalore where we discuss some of the applications of computer vision in e-commerce " 10 | 11 | venue: 12 | label: WalmartLabs, Bangalore 13 | address: | 14 | Walmart Labs, 15 | Sy No 15/2 & 14, 4th, 5th & 6th Floors. 16 | A-Block, Salarpuria Aura Building, 17 | Kadubeesenahalli, Outer Ring Road Bangalore 18 | lat: 12.936681 19 | lng: 77.690946 20 | google_maps_url: https://goo.gl/maps/fEGy3MnRZRm 21 | speakers: 22 | - name: Vijay Gabale 23 | byline: Co-founder and CTO, Huew 24 | image_url: https://images.hasgeek.com/embed/file/09f5b21931b74113a2ae021734ed7565 25 | bio: | 26 | 27 | - name: Vishnu Vardhan Makkapati 28 | byline: Architect, Myntra 29 | image_url: https://images.hasgeek.com/embed/file/f85a1ba967114f88881c383d8bdf0fd1 30 | bio: | 31 | 32 | overview: 33 | left_content: | 34 | On 9th September, we’re putting together a meetup at WalmartLabs to discuss about the application of computer vision in e-commerce. One of the key areas in which computer vision is currently used in e-commerce is in "fashion". Our speakers will walk us through some of the applications and use cases of the same. 35 | 36 | We'll have a series of talks on the following topics. 37 | 38 | * Talk 1: Deep attention networks to auto-tag fashion products at scale with high accuracy by Vijay Gabale. In this talk, Vijay will give us an overview of the problem and focus on aspects like why naive solutions didn't work for them, why simple CNN-based image classification didn't work. He will also provide an overview of attention networks using CNN + RNN, attention networks with deconvolution networks & experimentation details on amount of data/compute. This will be followed by details on dataset prepration, training and results. 39 | * Talk 2: Powering fashion e-commerce with computer vision and deep learning by Vishnu Vardhan Makkapati. Images are a rich source of information to interpret fashionability of a product. Several use cases in fashion e-commerce can be powered if we unlock the inherent fine-grained details in them. The huge catalogue data can be put to good use to realize some of them. In this talk, Vishnu will present an overview of their work on mining catalog images using deep learning and computer vision. 40 | 41 | If you'd like to get a sense of the applications of computer vision in e-commerce and interact with practitioners from the industry, this is a great place to be. RSVP now to reserve your spot! 42 | 43 | right_content: | 44 | 45 | --- 46 | -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | title: HasGeek Events 2 | subtitle: "We creates discussion spaces for geeks. Come to our events to meet like-minded people, learn new things and discover new opportunities." 3 | description: "HasGeek creates discussion spaces for geeks. Come to our events to meet like-minded people, learn new things and discover new opportunities." 4 | baseurl: "/events" # the subpath of your site, e.g. /blog 5 | url: "https://hasgeek.github.io" # the base hostname & protocol for your site, e.g. http://example.com 6 | id: hasgeek 7 | # Build settings 8 | markdown: kramdown 9 | plugins: 10 | - jekyll-feed 11 | - jekyll-sitemap 12 | exclude: 13 | - Gemfile 14 | - Gemfile.lock 15 | - Rakefile 16 | - .git 17 | - .sass_cache 18 | - node_modules 19 | - _site 20 | - tests 21 | - vendor 22 | - .DS_Store 23 | - configs 24 | - deploy 25 | - requirements.txt 26 | - README.md 27 | 28 | timezone: Asia/Calcutta 29 | webrick: 30 | headers: 31 | Access-Control-Allow-Origin: '*' 32 | 33 | destination: _site/_site 34 | 35 | sass_dir: _sass 36 | 37 | liquid: 38 | error_mode: strict 39 | 40 | collections: 41 | fragments_events: 42 | type: event 43 | output: true 44 | permalink: /fragments/:path/ 45 | anthillinside_events: 46 | type: event 47 | output: true 48 | permalink: /anthillinside/:path/ 49 | reactfoo_events: 50 | type: event 51 | output: true 52 | permalink: /reactfoo/:path/ 53 | fifthelephant_events: 54 | type: event 55 | output: true 56 | permalink: /fifthelephant/:path/ 57 | metarefresh_events: 58 | type: event 59 | output: true 60 | permalink: /metarefresh/:path/ 61 | jsfoo_events: 62 | type: event 63 | output: true 64 | permalink: /jsfoo/:path/ 65 | rootconf_events: 66 | type: event 67 | output: true 68 | permalink: /rootconf/:path/ 69 | 50p_events: 70 | type: event 71 | output: true 72 | permalink: /50p/:path/ 73 | -------------------------------------------------------------------------------- /_data/cities.yml: -------------------------------------------------------------------------------- 1 | - Bangalore 2 | - Chennai 3 | - Pune 4 | - Delhi/NCR 5 | - Hyderabad 6 | - Kochi 7 | - Mumbai 8 | - Elsewhere 9 | - Online 10 | - Coimbatore 11 | - Ahmedabad 12 | -------------------------------------------------------------------------------- /_data/past-events.yml: -------------------------------------------------------------------------------- 1 | fragments: 2 | - title: "droidconIN 2016" 3 | datelocation: "10-11 Nov 2016, Bangalore" 4 | url: "https://droidcon.in/2016/" 5 | description: "droidconIN is India’s largest Android conference, and part of a worldwide series of conferences focused on the Android ecosystem." 6 | 7 | rootconf: 8 | - title: "Rootconf 2017" 9 | datelocation: "11–12 May 2017, Bangalore" 10 | url: "https://rootconf.in/2017/" 11 | description: "This year's theme is service reliability. You will hear case studies of how organizations and teams plan, monitor and automate their infrastructure to ensure continous reliabilty and availability of services. You can participate in candid, Off-The-Record (OTR) conversations on cost optimization and resource allocation to make better decisions for your organization." 12 | 13 | jsfoo: 14 | - title: "JSFoo 2016" 15 | datelocation: "15-16 Sept 2016, Bangalore" 16 | url: "https://jsfoo.in/2016/" 17 | description: "JSFoo is India’s premier JavaScript conference. We launched JSFoo in 2011 as India’s first JavaScript conference. The JS community in India has grown phenomenally since then. JavaScript now pervades every aspect of web development – browsers, apps, front-end, backend, mobile and IoT." 18 | 19 | metarefresh: 20 | - title: "Meta Refresh 2016" 21 | datelocation: "17 Sept 2016, Bangalore" 22 | url: "https://metarefresh.in/2016/" 23 | description: "Meta Refresh is a conference on user experience for the web. Speakers in this event are working web designers and developers who describe how their work has advanced the state of the web in the past year." 24 | 25 | fifthelephant: 26 | - title: "The Fifth Elephant 2016" 27 | datelocation: "28-29 Jul 2016, Bangalore" 28 | url: "https://fifthelephant.in/2016/" 29 | description: "Discuss the most cutting edge developments in the fields of machine learning, data science and technology that power data collection and analysis." 30 | 31 | 50p: 32 | - title: "50p 2017, Mumbai" 33 | datelocation: "8 Jul 2017, Mumbai" 34 | url: "https://50p.in/devpay2017/" 35 | description: "The second edition of 50p was held in Mumbai." 36 | - title: "50p 2017, Bangalore" 37 | datelocation: "24-25 Jan 2017, Bangalore" 38 | url: "https://50p.in/2017/" 39 | description: "The first edition of 50p was held in Bangalore." 40 | -------------------------------------------------------------------------------- /_fifthelephant_events/2018-june-fraud-detection-meetup.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: event 3 | title: "Role of data science in fraud detection" 4 | subtitle: "One of the known applications of data science is in detecting frauds. How does this work in practice?" 5 | datelocation: "23 June 2018, 11:15 AM - 2:00 PM, WalmartLabs, Bangalore" 6 | city: Bangalore 7 | start_time: 2018-06-23 8 | end_time: 2018-06-23 9 | description: "One of the known applications of data science is in detecting frauds. How does this work in practice? " 10 | 11 | venue: 12 | label: WalmartLabs, Bangalore 13 | address: | 14 | Walmart Labs, Salarpuria Aura, BLOCK A, 1st Floor, 15 | Marathahalli - Sarjapur Outer Ring Rd, Kaverappa Layout, 16 | Kadubeesanahalli, Bengaluru, Karnataka 560103, India 17 | lat: 12.936681 18 | lng: 77.690946 19 | google_maps_url: https://goo.gl/maps/fEGy3MnRZRm 20 | 21 | overview: 22 | left_content: | 23 | 24 | In this panel discussion, we will: 25 | * Map the landscape of frauds in transactions. 26 | * Known and unknown types of frauds. 27 | * How data science aids in fraud detection. 28 | * Data science techniques used for detecting frauds. 29 | * Health, cleanliness and other facets of data that must be in place for carrying leveraging data science for fraud detection. 30 | 31 | 32 | Schedule: 33 | 34 | * 11:15 AM - 12:15 PM: Opening remarks by moderator and panelists 35 | * 12:15 PM - 1:00 PM: Panel discussion 36 | * 1:00 PM - 1:15 PM: Q&A session 37 | * 1:15 PM - 2:00 PM: Lunch hosted by WalmartLabs 38 | 39 | right_content: | 40 | 41 | 42 | featured_speakers: 43 | - name: Vinayak Hegde 44 | image_url: https://images.hasgeek.com/embed/file/fab14320cce749a58bcc911c40e33b44 45 | website: https://www.linkedin.com/in/vinayakh/ 46 | designation: CTO, Zoomcar 47 | 48 | - name: Vivek Mehta 49 | image_url: https://images.hasgeek.com/embed/file/f3a837ce0514455fb0498d8063f7a067 50 | website: https://www.linkedin.com/in/vivek-mehta/ 51 | designation: Revlo.in 52 | 53 | - name: Nirmal J M 54 | image_url: https://images.hasgeek.com/embed/file/b9df1e4025f2463684c607bf34dde414 55 | website: https://www.linkedin.com/in/nirmalparate/ 56 | designation: Head Payments Risk and Compliance at Ola Money 57 | 58 | - name: Vamsi Varanasi 59 | image_url: https://images.hasgeek.com/embed/file/f576ea535671462cb44e095ea64484cd 60 | website: https://www.linkedin.com/in/vamsikvaranasi/ 61 | designation: Product Manager, Ola Credit 62 | 63 | sponsor: 64 | blurb: | 65 | Sponsor for developer evangelism, community outreach, sales and hiring. 66 | 67 | Write to us for the sponsorship deck or for customized options at [info@hasgeek.com](mailto:info@hasgeek.com) 68 | 69 | sponsors: 70 | - title: "Sponsored By" 71 | size: "l" 72 | sponsors: 73 | - walmartlabs 74 | --- 75 | -------------------------------------------------------------------------------- /_fragments_events/2017-sep-chennai-meetup.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: workshop 3 | title: "Fragments meetup in Chennai" 4 | subtitle: "A meetup in Chennai for everyone curious about the mobile ecosystem." 5 | datelocation: "2 Sep 2017, 10 AM - 1 PM, Chennai" 6 | city: Chennai 7 | start_time: 2017-09-02 8 | end_time: 2017-09-02 9 | description: "A meetup for everyone curious about the mobile ecosystem." 10 | 11 | venue: 12 | label: Zoho Corporation, Chennai 13 | address: | 14 | Zoho, Estancia IT Park, Plot No. 140 & 151, GST Road, 15 | Vallancherry Village, Kanchipuram, District, Chengalpattu, Tamil Nadu 603202 16 | lat: 12.8310116 17 | lng: 80.049415 18 | google_maps_url: https://goo.gl/maps/CCSkjpdLGHJ2 19 | speakers: 20 | - name: Mario Stallone 21 | byline: 22 | image_url: https://images.hasgeek.com/embed/file/ebc5abb947ff47658fbe3cb09da48419 23 | bio: | 24 | **Mario** is a polyglot programmer with an inclination towards Mobile Application Development. He has worked on multiple products across Android and iOS, and until most recently was leading the technical efforts on mobile for Myntra. 25 | 26 | - name: Girish Koundinya 27 | byline: 28 | image_url: https://images.hasgeek.com/embed/file/6bf95e3485fc48a2bf83d80c823e961a 29 | bio: | 30 | **Girish** is a lead engineer, Freshdesk mobile. Currently, he is driving cross platform initiatives for Freshworks suite of products, which is used by more than 100,000 businesses across the world. When he's not dreaming about United winning the championship, he's probably tinkering with Go, Swift or React Native. 31 | 32 | overview: 33 | left_content: | 34 | On 2nd September, we’re putting together a meetup at Zoho. In this meetup, we hope to cover a variety of topics addressing various aspects of the mobile ecosystem. We're also accepting a couple of flash talks at the meetup. Flash talks are talks of 5-8 minutes. If you're interested in proposing a flash talk, please drop an email to shreyaskutty@hasgeek.com. 35 | We'll have a series of talks on the following topics. 36 | 37 | * Talk 1: Engineering for Good Design by Mario Stallone. Product, engineering, and design makes up the three pillars of a successful product. Empathising with each other's roles in the product life cycle, while sharing feedback and inputs with each other can sometimes get tricky. In this talk, Mario will share his experience, and how he has learned to empathize and work more closely with designers and product managers. 38 | * Talk 2: Freshworks' journey towards cross platform development by Girish Koundinya. Building applications for multiple platforms is challenging. As a product grows and becomes feature rich, replicating use cases while maintaining individuality of the platform becomes very hard and usually, every engineering team comes across a scenario where they have to dabble with cross platform development. This talk is about how they approached this problem and what they've learned from it. 39 | * Talk 3: TBD 40 | 41 | If you'd like to get a sense of the mobile ecosystem and interact with practitioners from the industry, this is a great place to be. RSVP now to reserve your spot! 42 | 43 | right_content: | 44 | 45 | --- 46 | -------------------------------------------------------------------------------- /_includes/accommodation_card.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |

4 | {{ include.accommodation.title }} 5 |

6 |

7 | {{ include.accommodation.location }} 8 |

9 |

10 | {{ include.accommodation.distance }} 11 |

12 |
13 |
14 | -------------------------------------------------------------------------------- /_includes/accommodation_section.html: -------------------------------------------------------------------------------- 1 |
2 |

Accommodation

3 |
4 |
5 | 6 |
7 | {% for acco in include.accommodation.accommodations %} 8 |
9 | {% include accommodation_card.html accommodation=acco %} 10 |
11 | {% endfor %} 12 |
13 |
14 |
15 | {{ include.accommodation.blurb | markdownify }} 16 |
17 |
18 | -------------------------------------------------------------------------------- /_includes/announcements_section.html: -------------------------------------------------------------------------------- 1 |
2 | {% for announcement in include.announcements %} 3 |
4 |
5 |
6 |

{{ announcement.title }}

7 |
8 | {{ announcement.text | markdownify }} 9 |
10 |
11 |
12 | {% endfor %} 13 |
14 | -------------------------------------------------------------------------------- /_includes/archive_section.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
5 |

Photos

6 |
7 |
8 |
9 | 10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |

Videos

18 |
19 |
20 |
21 | 22 |
23 |
24 |
25 |
26 |
27 | -------------------------------------------------------------------------------- /_includes/assign_all_events.html: -------------------------------------------------------------------------------- 1 | {% assign all_events = "" | split: "" %} 2 | {% assign all_collections = site.collections | where:'type', 'event'%} 3 | {% for collection in all_collections %} 4 | {% assign all_events_c = collection.docs %} 5 | {% for event in all_events_c %} 6 | {% assign event_d = event.end_time | date: '%Y%m%d' | plus: 0%} 7 | {% assign site_d = site.time | date: '%Y%m%d' | plus: 0 %} 8 | {% if event_d >= site_d %} 9 | {% assign all_events = all_events | push: event %} 10 | {% endif %} 11 | {% endfor %} 12 | {% endfor %} 13 | {% assign all_events = all_events | sort: 'start_time' %} 14 | -------------------------------------------------------------------------------- /_includes/assign_featured_events.html: -------------------------------------------------------------------------------- 1 | {% assign featured_events = "" | split: "" %} 2 | {% assign all_collections = site.collections | where:'type', 'event'%} 3 | {% for collection in all_collections %} 4 | {% assign featured_events_c = collection.docs | where:'featured', 'true' %} 5 | {% for event in featured_events_c %} 6 | {% assign event_d = event.end_time | date: '%Y%m%d' | plus: 0%} 7 | {% assign site_d = site.time | date: '%Y%m%d' | plus: 0 %} 8 | {% if event_d >= site_d %} 9 | {% assign featured_events = featured_events | push: event %} 10 | {% endif %} 11 | {% endfor %} 12 | {% endfor %} 13 | {% assign featured_events = featured_events | sort: 'end_time' %} 14 | -------------------------------------------------------------------------------- /_includes/assign_past_events.html: -------------------------------------------------------------------------------- 1 | {% assign past_events = "" | split: "" %} 2 | 3 | {% assign all_events = "" | split: "" %} 4 | {% assign all_collections = site.collections | where:'type', 'event'%} 5 | {% for collection in all_collections %} 6 | {% assign all_events_c = collection.docs %} 7 | {% for event in all_events_c %} 8 | {% assign event_d = event.end_time | date: '%Y%m%d' | plus: 0%} 9 | {% assign site_d = site.time | date: '%Y%m%d' | plus: 0 %} 10 | {% if event_d < site_d %} 11 | {% assign past_events = past_events | push: event %} 12 | {% endif %} 13 | {% endfor %} 14 | {% endfor %} 15 | {% assign past_events = past_events | sort: 'start_time' %} 16 | 17 | {% if site.id == 'hasgeek' %} 18 | {% for event_c in site.data.past-events %} 19 | {% for event in event_c[1] %} 20 | {% assign past_events = past_events | push: event %} 21 | {% endfor %} 22 | {% endfor %} 23 | {% elsif site.id == "" %} 24 | {% else %} 25 | {% for event in site.data.past-events[site.id] %} 26 | {% assign past_events = past_events | push: event %} 27 | {% endfor %} 28 | {% endif %} 29 | -------------------------------------------------------------------------------- /_includes/assign_unfeatured_events.html: -------------------------------------------------------------------------------- 1 | {% assign unfeatured_events = "" | split: "" %} 2 | {% assign all_collections = site.collections | where:'type', 'event'%} 3 | {% for collection in all_collections %} 4 | {% assign featured_events_c = collection.docs | where_exp:'event', "event.featured != true" %} 5 | {% for event in featured_events_c %} 6 | {% assign unfeatured_events = unfeatured_events | push: event %} 7 | {% endfor %} 8 | {% endfor %} 9 | {% assign unfeatured_events = unfeatured_events | sort: 'end_time' %} 10 | -------------------------------------------------------------------------------- /_includes/boxoffice_js.html: -------------------------------------------------------------------------------- 1 | 69 | -------------------------------------------------------------------------------- /_includes/boxoffice_tickets_section.html: -------------------------------------------------------------------------------- 1 |
2 |

Tickets

3 |
4 |

Loading...

5 | -------------------------------------------------------------------------------- /_includes/childcare_announcement.html: -------------------------------------------------------------------------------- 1 |
2 | 3 |

Childcare at {{ site.title }}

4 |

We welcome children at {{ site.title }}. If you are a primary caretaker who wants to attend the conference and needs support with childcare, we have it all arranged. Learn more.

5 |
6 | -------------------------------------------------------------------------------- /_includes/community_space_announcement.html: -------------------------------------------------------------------------------- 1 |
2 | 3 |

Community Space

4 |

Are you an open source community, non-profit org? We invite you to be part of HasGeek conferences. Apply here.

5 |
6 | -------------------------------------------------------------------------------- /_includes/content_section.html: -------------------------------------------------------------------------------- 1 |
2 | {% if include.left %} 3 |
4 |
5 | {{ include.left | markdownify }} 6 |
7 |
8 | {% endif %} 9 | {% if include.center %} 10 |
11 |
12 | {{ include.center | markdownify }} 13 |
14 |
15 | {% endif %} 16 | {% if include.right %} 17 |
18 |
19 | {{ include.right | markdownify }} 20 |
21 |
22 | {% endif %} 23 |
24 | -------------------------------------------------------------------------------- /_includes/discussions.html: -------------------------------------------------------------------------------- 1 | 39 | 40 |
41 |

Discussions


42 |
43 |
44 | {% if include.instructors %} 45 | {% assign speakers = include.instructors %} 46 | {% else %} 47 | {% assign speakers = include.speakers %} 48 | {% endif %} 49 | {% for speaker in speakers %} 50 |
51 |
52 | {% if speaker.image_url %} 53 |
54 | 55 |
56 | {% endif %} 57 |
58 |

{{ speaker.talk_title }}

59 |

{{ speaker.blurb | markdownify }}

60 |
61 |
62 | {% endfor %} 63 |
64 | 65 | -------------------------------------------------------------------------------- /_includes/event_card.html: -------------------------------------------------------------------------------- 1 | {% if include.event.url contains "://" %} 2 | {% assign event_url = include.event.url %} 3 | {% else %} 4 | {% assign event_url = include.event.url | absolute_url %} 5 | {% endif %} 6 | 7 |
8 | 36 |
37 |

38 | {{ include.event.title }} 39 |

40 | {% if include.event.datelocation %} 41 |

42 | {{ include.event.datelocation }} 43 |

44 | {% endif %} 45 | 46 | {% assign event_d = event.end_time | date: '%Y%m%d' | plus: 0 %} 47 | {% assign site_d = site.time | date: '%Y%m%d' | plus: 0 %} 48 | {% if event_d >= site_d %} 49 | 50 | {% if include.event.boxoffice_item_collection %} 51 | {% if include.event.boxoffice_item_collection_sold_out == true %} 52 | Tickets sold out 53 | {% else %} 54 | Tickets now available 55 | {% endif %} 56 | {% endif %} 57 | {% if include.event.funnel.open == true %} 58 | Call for Proposals are open 59 | {% endif %} 60 | {% endif %} 61 |
62 |

{{ include.event.description | truncate: 260, "..." | markdownify }}

63 |
64 |
65 |
66 | -------------------------------------------------------------------------------- /_includes/featured_event_card.html: -------------------------------------------------------------------------------- 1 | {% if include.event.url contains "://" %} 2 | {% assign event_url = include.event.url %} 3 | {% else %} 4 | {% assign event_url = include.event.url | absolute_url %} 5 | {% endif %} 6 | 7 | 76 | -------------------------------------------------------------------------------- /_includes/featured_speakers_section.html: -------------------------------------------------------------------------------- 1 |
2 |

Talks

3 |
4 |
5 |
6 | {% if include.instructors %} 7 | {% assign speakers = include.instructors %} 8 | {% else %} 9 | {% assign speakers = include.speakers %} 10 | {% endif %} 11 | {% for speaker in speakers %} 12 |
13 |
14 | {% if speaker.image_url %} 15 |
16 | 17 |
18 | {% endif %} 19 |
20 |

{{ speaker.talk_title }}

22 |

{{ speaker.name }} | {{ speaker.designation }}

23 |
24 |
25 | {% endfor %} 26 | 27 | {% include randomize.html %} 28 |
29 | -------------------------------------------------------------------------------- /_includes/featured_video.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |

{{ include.title }}

4 |
5 |
6 | 7 | 18 | 19 | -------------------------------------------------------------------------------- /_includes/flickr_album.html: -------------------------------------------------------------------------------- 1 |
2 |

3 | {{ include.title }} 4 |

5 |
6 |
7 | 8 |
9 | -------------------------------------------------------------------------------- /_includes/food_court_announcement.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Food Court

4 |

5 | Do you like to eat? So do we! HasGeek staff are foodies and also health conscious. Learn more about the food court at our conferences. Learn more. 6 |

7 |
8 | -------------------------------------------------------------------------------- /_includes/footer.html: -------------------------------------------------------------------------------- 1 | 15 | -------------------------------------------------------------------------------- /_includes/hasjob_widget_section.html: -------------------------------------------------------------------------------- 1 |
2 |

Related jobs


3 |
4 | 5 | 6 |
7 | 8 | -------------------------------------------------------------------------------- /_includes/instructors_section.html: -------------------------------------------------------------------------------- 1 |
2 |

{% if include.instructors %}Instructors{%else%}Speakers{%endif%}

3 |
4 |
5 |
6 | {% if include.instructors %} 7 | {% assign instructors = include.instructors %} 8 | {% else %} 9 | {% assign instructors = include.speakers %} 10 | {% endif %} 11 | {% for instructor in instructors %} 12 |
13 |
14 |
15 |
16 | {% if instructor.image_url %} 17 |
18 |
19 |
20 |
21 | {% endif %} 22 |
23 |

{{ instructor.name }}

24 |

{{ instructor.byline }}

25 |
26 |
27 |
28 |
29 | 56 |
57 | {% endfor %} 58 |
59 | -------------------------------------------------------------------------------- /_includes/navbar_site.html: -------------------------------------------------------------------------------- 1 | {% include assign_featured_events.html %} 2 | {% include assign_all_events.html %} 3 | 4 | 22 | -------------------------------------------------------------------------------- /_includes/office_hours_announcement.html: -------------------------------------------------------------------------------- 1 |
2 | 3 |

Office hours

4 |

Want to consult experts on your queries? Catch them at {{site.title}} and chat with them individually.

5 |
6 | -------------------------------------------------------------------------------- /_includes/outreach_js.html: -------------------------------------------------------------------------------- 1 | 37 | -------------------------------------------------------------------------------- /_includes/outreach_sponsorship_section.html: -------------------------------------------------------------------------------- 1 |
2 |

Sponsorship

3 |
4 |

Loading...

-------------------------------------------------------------------------------- /_includes/past_speakers_section.html: -------------------------------------------------------------------------------- 1 |
2 |

Past speakers

3 |
4 |
5 |
6 | {% if include.instructors %} 7 | {% assign speakers = include.instructors %} 8 | {% else %} 9 | {% assign speakers = include.speakers %} 10 | {% endif %} 11 | {% for speaker in speakers %} 12 |
13 |
14 | {% if speaker.image_url %} 15 |
16 | 17 |
18 | {% endif %} 19 |
20 |

{{ speaker.talk_title }}

22 |

{{ speaker.name }} | {{ speaker.designation }}

23 |
24 |
25 | {% endfor %} 26 | 27 | {% include randomize.html %} 28 |
-------------------------------------------------------------------------------- /_includes/photo_album.html: -------------------------------------------------------------------------------- 1 |
2 |

3 | {{ include.title }} 4 |

5 | {% assign photos = include.photos %} 6 |
7 | {% for photo in photos %} 8 | 9 | {% endfor %} 10 |
11 | 12 | 13 |
14 | -------------------------------------------------------------------------------- /_includes/proposal_section.html: -------------------------------------------------------------------------------- 1 |
2 |

Call for Proposals

3 |

4 | {% if page.funnel.open == true %} 5 | We are currently accepting talk proposal submissions 6 | {% else %} 7 | Proposal submissions are currently closed 8 | {% endif %} 9 |

10 | 11 | {% if page.funnel.open == true %} 12 | Propose a talk 13 | {% else %} 14 | View all proposals 15 | {% endif %} 16 |
17 | -------------------------------------------------------------------------------- /_includes/proposed_speakers_section.html: -------------------------------------------------------------------------------- 1 |
2 |

Proposals

3 |
4 |
5 |
6 | {% if include.instructors %} 7 | {% assign speakers = include.instructors %} 8 | {% else %} 9 | {% assign speakers = include.speakers %} 10 | {% endif %} 11 | {% for speaker in speakers %} 12 |
13 |
14 |
15 |
16 | {% if speaker.image_url %} 17 |
18 |
19 |
20 |
21 | {% endif %} 22 |
23 |

{{ speaker.talk_title }}

24 |

{{ speaker.name }}

25 |

{{ speaker.designation }}

26 | {% if speaker.website %} 27 | {{ speaker.website.label }} 28 | {% endif %} 29 |

30 |
31 |
32 | {{ speaker.blurb | markdownify }} 33 |
34 |
35 |
36 |
37 | {% endfor %} 38 |
39 | -------------------------------------------------------------------------------- /_includes/randomize.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /_includes/recommend_speaker_announcement.html: -------------------------------------------------------------------------------- 1 |
2 | 3 |

Recommend a speaker!

4 |

5 | If you know of individuals doing amazing work in this field, introduce us. We will provide them a platform to share their work at the conference. To recommend a speaker, click here. 6 |

7 |
8 | -------------------------------------------------------------------------------- /_includes/related_events_section.html: -------------------------------------------------------------------------------- 1 | {% assign all_related_events = "" | split: "" %} 2 | 3 | {% for other_event in page.related_events %} 4 | {% if other_event.title %} 5 | {% assign all_related_events = all_related_events | push: other_event %} 6 | {% else %} 7 | {% assign e = other_event | split: "-" | first %} 8 | {% assign y = other_event | split: "-" | shift | join: "-" %} 9 | {% capture x %}/{{y}}/{% endcapture %} 10 | {% include assign_all_events.html %} 11 | 12 | {% for event in all_events %} 13 | {% if event.collection contains e and event.url contains x %} 14 | 15 | {% assign all_related_events = all_related_events | push: event %} 16 | {% endif %} 17 | {% endfor %} 18 | 19 | {% endif %} 20 | 21 | {% endfor %} 22 | 23 | 24 |
25 |

What else is happening?

26 |

You may also be interested in these related events

27 |
28 |
29 | 30 |
31 | {% for event in all_related_events %} 32 |
33 | {% include event_card.html event=event %} 34 |
35 | {% endfor %} 36 |
37 | -------------------------------------------------------------------------------- /_includes/rsvp.html: -------------------------------------------------------------------------------- 1 |
2 |

Tickets

3 |
4 |
5 | {{ include.rsvp | markdownify }} 6 |
7 | -------------------------------------------------------------------------------- /_includes/sidebar_site.html: -------------------------------------------------------------------------------- 1 | {% include assign_featured_events.html %} 2 | {% include assign_all_events.html %} 3 | 4 | 24 | -------------------------------------------------------------------------------- /_includes/subbanner_devweek.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |

This is a part of a week long series of events

5 |

Fragments (12–13 Sept) | ReactFoo (14 Sept) | JSFoo (15–16 Sept)

6 |
7 |
8 |
9 | -------------------------------------------------------------------------------- /_includes/submitted_proposal.html: -------------------------------------------------------------------------------- 1 |
2 |

Proposals

3 |
4 |
5 |

Loading...

6 | {% raw %} 7 | 44 | {% endraw %} 45 |
46 | {% if page.funnel.open %} 47 |

Propose a talk

48 | {% endif %} 49 | -------------------------------------------------------------------------------- /_includes/testimonials.html: -------------------------------------------------------------------------------- 1 |
2 |

Testimonials


3 |
4 | {% assign testimonials = include.testimonials %} 5 | {% for testimonial in testimonials %} 6 |
7 |
8 | {{ testimonial.blurb|safe }} 9 |
10 |

{{ testimonial.name|safe }}

11 |

{{ testimonial.designation|safe }}

12 |
13 | {% endfor %} 14 | -------------------------------------------------------------------------------- /_includes/venue_section.html: -------------------------------------------------------------------------------- 1 |
2 |

Venue

3 |
4 |

Loading...

5 |
6 |
7 | {% if include.venue.address %} 8 |
9 | {{ include.venue.address | markdownify }} 10 |
11 | {% endif %} 12 | {% if include.venue.google_maps_url %} 13 | Directions 14 | {% endif %} 15 |
16 | -------------------------------------------------------------------------------- /_includes/workshop_header_section.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
5 |
6 |

{{ include.event.title }}

7 | {% if include.event.subtitle %} 8 |

{{ include.event.subtitle }}

9 | {% endif %} 10 |

{{ include.event.datelocation }}

11 | {% if include.event.boxoffice_item_collection %} 12 | Buy Tickets 13 | {% endif %} 14 |
15 |
16 |
17 |
18 |
19 | -------------------------------------------------------------------------------- /_jsfoo_events/2017-nov-pwa-workshop.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: workshop 3 | title: "Angular PWA workshop" 4 | subtitle: "Learn how to build progressive web apps using Angular" 5 | datelocation: "11 November 2017, 10:00 AM to 1:15 PM, HasGeek House, Bangalore" 6 | city: Bangalore 7 | start_time: 2017-11-11 8 | end_time: 2017-11-11 9 | description: "Learn how to build progressive web apps using Angular" 10 | boxoffice_item_collection: '048ef964-856d-4757-8099-bac291d32cd8' 11 | 12 | instructors: 13 | - name: Vinci Rufus 14 | image_url: https://images.hasgeek.com/embed/file/e4a1b359a4b34a26a4e84693b2b5449d 15 | website: 16 | url: https://www.linkedin.com/in/vinci/ 17 | label: Linkedin 18 | byline: Sr. Director of Technology with SapientRazorfish 19 | bio: | 20 | **Vinci Rufus** is a Sr. Director of Technology with SapientRazorfish and a Google Developer Expert. He consults various teams on their frontend architecture stack. 21 | 22 | overview: 23 | left_content: | 24 | 25 | Progressive web apps are no longer considered an alternative to native mobile apps, instead they are evolving to becoming the de-facto way of building web apps. 26 | 27 | Angular’s vision is to get to a point where every Angular application deployed to production is by default AOT compiled and is a PWA. 28 | 29 | During the workshop participants will fork a regular Angular application and will go about converting it into a PWA. 30 | Some of the items we will learn during the workshop are: 31 | 32 | * Toolset to improve your developer productivity while working with Angular. 33 | * Leveraging Angular CLI and other core modules to build out a Minimum Viable PWA (MVP) 34 | * Add mobile installable capabilities via manifest. 35 | * Universal Rendering for the App shell. 36 | * Offline caching for static and dynamic content. 37 | * Setting up caching strategies between offline first and network first. 38 | * UX guidelines & best practices for offline first apps. 39 | * Adding Push notifications. 40 | * Deploying to firebase. 41 | * Allowing transactions in offline mode via background sync. 42 | 43 | 44 | right_content: | 45 | 46 | #### Target Audience: 47 | Web Developers, who are familiar with any JS framework. 48 | Frontend Solution Architects 49 | Hybrid & Native Mobile app developers comfortable with JavaScript 50 | Students and all JS and web enthusiasts. 51 | 52 | 53 | #### Prerequisites: 54 | Node js 6.x.x. or above 55 | Android phone along with USB cable (for debugging) (optional) 56 | Google Account / Firebase Account. 57 | 58 | #### Duration: 3 hours 59 | 60 | #### Workshop Team (eXperience Technologies team from Sapient Razorfish): 61 | 62 | * Vinci Rufus –Sr. Director SapientRazorfish 63 | * Nisheed Jagdeesh -Manager SapientRazorfish 64 | * Kriti Aggarwal – SapientRazorfish 65 | * Ashish Jangid – SapientRazorfish 66 | venue: 67 | label: HasGeek House, Bangalore 68 | address: | 69 | HasGeek House 70 | 2699, 19th Main, 5th Cross, HAL 2nd Stage, 71 | Indiranagar, Bengaluru, Karnataka 560008. 72 | lat: 12.961499 73 | lng: 77.644307 74 | google_maps_url: https://goo.gl/maps/22MeDNNqFtE2 75 | 76 | --- 77 | -------------------------------------------------------------------------------- /_jsfoo_events/2017-oct-enterprise-walmart-meetup.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: workshop 3 | title: "JavaScript in Enterprise Meetup, Bangalore" 4 | subtitle: "A meetup for anyone using and working with JavaScript in the enterprise sector." 5 | datelocation: "14 Oct 2017, 11 AM - 2 PM, WalmartLabs" 6 | city: Bangalore 7 | start_time: 2017-10-14 8 | end_time: 2017-10-14 9 | description: "A meetup for anyone using and working with JavaScript in enterprise." 10 | venue: 11 | label: WalmartLabs, Bangalore 12 | address: | 13 | Walmart Labs, Salarpuria Aura, BLOCK A, 1st Floor, Marathahalli - Sarjapur Outer Ring Rd, Kaverappa Layout, Kadubeesanahalli, Bengaluru, Karnataka 560103, India 14 | lat: 12.936681 15 | lng: 77.690946 16 | google_maps_url: https://goo.gl/maps/fEGy3MnRZRm 17 | overview: 18 | left_content: | 19 | On 14th October, we're putting together a panel discussion on JavaScript in the enterprise world. The purpose of putting this panel together is to bring engineering managers and leaders from large companies to talk about the following topics- 20 | * What are some of the code overheads / ease with running front-ends and backend with JS. 21 | * The challenges of new frameworks in JS and how managers have to get their teams to adapt – what kind of tech debts and overheads have to be dealt with in the process? 22 | * The challenge of building JS teams given skill, talent pool, changing frameworks and the need to have engineers who understand front-end and backend with JS. 23 | * How does browser changes impact the enterprise? 24 | * How do these companies give back to the JS community? 25 | 26 | We'll have a panel discussion around this topic. If you'd like to propose a flash talk(5-7 minutes) on how your enterprise is using JS, please write to shreyaskutty@hasgeek.com. 27 | 28 | If you'd like to get a peak into the JS in enterprise world or plan to grow your JS team in an enterprise, this meetup is a great place to talk to practitioners. 29 | RSVP now to attend the meetup. 30 | right_content: | 31 | 32 | --- 33 | -------------------------------------------------------------------------------- /_jsfoo_events/2017-sept-hacknight.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: workshop 3 | title: "Hacknight at HasGeek" 4 | subtitle: "JavaScript hacknight at HasGeek House" 5 | datelocation: "9-10 Sep 2017, 5 PM - 8 AM, HasGeek House" 6 | city: Bangalore 7 | start_time: 2017-09-09 8 | end_time: 2017-09-10 9 | description: "A hacknight to work collaboratively on your favourite JavaScript project mentored by professionals from the industry." 10 | 11 | venue: 12 | label: HasGeek House, Bangalore 13 | address: | 14 | HasGeek 15 | 2699, 19th Main Rd, 16 | HAL 2nd Stage, Indiranagar, 19th Main Rd, HAL 2nd Stage, Indiranagar, 17 | Bengaluru, Karnataka 560008 18 | lat: 12.961499 19 | lng: 77.644307 20 | google_maps_url: https://goo.gl/maps/tQmKAFvox342 21 | 22 | overview: 23 | left_content: | 24 | Hacknights at HasGeek are a favorite of savvy geeks. Unlike regular hackathons, hacknights at HasGeek foster collaboration among developers who are passionate about building things. If you're into looking for a hackathon to participate and win prizes, this isn't it. But if you're passionate about technology, love to work with a community, and want to build something amazing. HasGeek's hacknights are for you. Did we mention the mentoring by industry professionals? There's that, too. Sign up now! 25 | If you'd like to take a sneak peek at what happens at our hacknights, check out the video below. 26 | 27 | 28 | If you prefer reading, we also have a blogpost about our droidconIN hacknight. You can [read it here](https://medium.com/hasgeek/with-hackathons-maybe-smaller-the-better-c332ef23bc9). 29 | right_content: | 30 | 31 | --- 32 | -------------------------------------------------------------------------------- /_layouts/document.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: base 3 | --- 4 |
5 |
6 |
7 |

8 | {{ page.title }} 9 |

10 |

11 | {{ page.subtitle }} 12 |

13 |
14 |
15 |
16 | 17 |
18 |
19 |
20 |
21 |
22 | {{ content | markdownify }} 23 |
24 |
25 |
26 |
27 |
28 | 29 | {% include footer.html %} 30 | -------------------------------------------------------------------------------- /_layouts/redirect.html: -------------------------------------------------------------------------------- 1 | --- 2 | --- 3 | 4 | 5 | 6 | 7 | {{ site.title }} 8 | 9 | 10 | 11 | 12 | 20 | 21 | -------------------------------------------------------------------------------- /_metarefresh_events/2017.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: event 3 | title: Meta Refresh 2017 4 | subtitle: "On interaction design and CSS from product and business standpoints" 5 | datelocation: "Postponed till further notice, dates are tentative" 6 | city: Bangalore 7 | start_time: 2018-02-01 8 | end_time: 2018-02-01 9 | description: "This year, we have decided to ground ourselves by looking at two aspects of design: Interactivity and user experience, and CSS with the goal of understanding why design and engineering choices are made for different users, in different domains and for meeting different business goals." 10 | logo: 11 | image_url: /images/metarefresh-logo.png 12 | funnel: 13 | url: "https://hasgeek.com/metarefresh/2017/" 14 | open: close 15 | related_events: 16 | - metarefresh-cms-conf-2017 17 | overview: 18 | left_content: | 19 | Meta Refresh will be six years old in 2017. We have come a full circle with trying to bridge the gap between designers and developers in the initial years, to producing a conference on front-end engineering alone, and finally, experimenting with shifting the focus to product design. 20 | 21 | Conferences are living bodies, in that they evolve, just as humans grow by learning from trial and error. This year, we have decided to ground ourselves by looking at two aspects of design: 22 | 23 | 1. Interactvity and user experience 24 | 2. CSS 25 | 26 | with the goal of understanding why design and engineering choices are made for different users, in different domains and for meeting different business goals. 27 | right_content: | 28 | The target audience for this year’s edition includes: 29 | 30 | * Interaction designers. 31 | * Visual designers. 32 | * UI engineers. 33 | * Product managers. 34 | * Businesses interested in understanding how to understand users, and thereby design better user experience and design. 35 | --- 36 | -------------------------------------------------------------------------------- /_metarefresh_events/cms-conf-2017.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: event 3 | title: CMS Conf 2017 4 | subtitle: "The future of digital media" 5 | datelocation: "Postponed till further notice, dates are tentative" 6 | city: Bangalore 7 | start_time: 2018-02-01 8 | end_time: 2018-02-01 9 | description: "The core focus of the Content Management Systems (CMS) conf is understanding CMS workflows – why does your workflow necessitate either building a custom CMS or using an existing CMS." 10 | funnel: 11 | url: "https://hasgeek.com/metarefresh/cms-conf-2017/" 12 | open: close 13 | related_events: 14 | - metarefresh-2017 15 | overview: 16 | left_content: | 17 | Every business is producing content, be it product catalogues on e-commerce websites, user updates and stories on social networking platforms, or news in the form of text and video on media sites. Managing and displaying content is the cornerstone of business and engineering decisions in every domain – not just media. 18 | 19 | **The core focus of the Content Management Systems (CMS) conf is understanding CMS workflows – why does your workflow necessitate either building a custom CMS or using an existing CMS.** 20 | 21 | Housed under Meta Refresh, the first edition of CMS conf will cover the following topics: 22 | 23 | 1. Information architecture. 24 | 2. Engineering challenges involved in displaying video, text and visual content. 25 | 3. CMS UX. 26 | 4. CMS as competitive advantage (and how digital media is empowering different businesses). 27 | 5. SEO optimization. 28 | 6. CMS and its influence on advertising revenues, subscriptions and monetization. 29 | 7. CDNs, thread detection and mirroring. 30 | 8. User stories from journalists, power users and bloggers. 31 | 32 | right_content: | 33 | You should attend and speak at the CMS conf if your work involves: 34 | 35 | 1. Creating and managing content: 36 | * Content managers 37 | * Copy editors 38 | * Writers 39 | * Bloggers 40 | * Power users (who regularly post content on LinkedIn, Facebook, Medium and other platforms) 41 | * Journalists 42 | 2. You run a content business: 43 | * Media houses 44 | * Web publishers 45 | 3. You design websites: 46 | * Information architects 47 | * Web designers and developers 48 | * Design and development agencies / studios 49 | 4. If you are in the business of building CMS. 50 | 5. Non-profits that produce knowledge and publish it online for research, advocacy or outreach. 51 | 6. Decision-makers in media houses including: 52 | * CIOs 53 | * CTOs 54 | * Business leaders 55 | 7. E-commerce companies, including: 56 | * Category managers 57 | * Marketing teams 58 | --- 59 | -------------------------------------------------------------------------------- /_metarefresh_events/cms-strategy-open-house.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: workshop 3 | title: "Office Hours: Content strategy and CMS implementations" 4 | subtitle: "Speak to Souvik Das Gupta and get your CMS content strategy, and implementation evaluated." 5 | datelocation: "01 February 2019, Bangalore" 6 | city: Bangalore 7 | start_time: 2019-02-01 8 | end_time: 2019-02-01 9 | description: "Office Hours - one to one interactions with Souvik where you (and your team) can discuss on how you have planned your website including content strategy, information architecture, CMS implementation, publishing workflows, performance, and technical SEO etc." 10 | boxoffice_item_collection: 'b3a61d4f-c29f-40c1-be26-103578c34af4' 11 | venue: 12 | label: HasGeek House, Bangalore 13 | lat: 12.96149473 14 | lng: 77.64430654 15 | address: | 16 | 2699, 19th Main Road 17 | HAL 2nd Stage, Indiranagar 18 | Bengaluru, Karnataka 560008 19 | google_maps_url: https://goo.gl/maps/1oAmjTuHXMv 20 | 21 | overview: 22 | left_content: | 23 | 24 | # Format 25 | 26 | Office Hours - one to one interactions with Souvik where you (and your team) can discuss on how you have planned your website including content strategy, information architecture, CMS implementation, publishing workflows, performance, and technical SEO etc. 27 | 28 | # Why meet Souvik? 29 | 30 | Souvik Das Gupta co-founded Miranj - a web design and development studio in New Delhi - with Prateek Rungta. Their work lies at the intersection of content, design and technology, specialising information rich websites that are powered by CMS. They’ve helped a diverse set of clients (from independent filmmakers and startups to corporates and non-profits) create meaningful and future-proof experiences over the web. They take pride in bragging about how long their work lives on the web. 31 | --- 32 | -------------------------------------------------------------------------------- /_reactfoo_events/2018-graphql-apollo-workshop-blr.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: workshop 3 | title: "Workshop: GraphQL & Apollo" 4 | subtitle: "Learn how to build apps with React, GraphQL and Apollo." 5 | datelocation: "9:00 AM to 1:00 PM, 7 April 2018, Bangalore" 6 | city: Bangalore 7 | start_time: 2018-04-07 8 | end_time: 2018-04-07 9 | description: "In this workshop, you will learn how to build apps with React, GraphQL and Apollo. Various concepts of GraphQL and Apollo will be covered while building a simple e-commerce app." 10 | boxoffice_item_collection: "0a0e9934-a4e5-47c5-b78b-91a0062921b5" 11 | 12 | instructors: 13 | - name: Kiran Abburi 14 | image_url: https://images.hasgeek.com/embed/file/634696c3e23b4b11930160bc77dc106f 15 | website: 16 | url: https://github.com/akiran 17 | label: Github Page 18 | byline: Freelance react developer. Blockchain enthusiast. 19 | bio: | 20 | Kiran Abburi is a freelance developer with 6+ years of experience in web development. He primarily works on reactjs, nodejs and GraphQL projects. He is also an organizer of the Reactjs Bangalore meetup group. 21 | venue: 22 | label: HasGeek House, Bangalore 23 | lat: 12.96149473 24 | lng: 77.64430654 25 | address: | 26 | 2699, 19th Main Road 27 | HAL 2nd Stage, Indiranagar 28 | Bengaluru, Karnataka 560008 29 | google_maps_url: https://goo.gl/maps/1oAmjTuHXMv 30 | overview: 31 | left_content: | 32 | 33 | # Abstract 34 | 35 | React helps us in building declarative components and composing them to build apps. Libraries like redux solved the state management problem, but handling network requests is still tricky. We often need imperative logic to initiate network requests, update server response in local store, handle network errors etc. This could be complex and repetitive. GraphQL and Apollo solves this problem by enabling us to handle network requests in declarative fashion. They allows us to specify the data requirements of components declaratively and apollo takes care of fetching the data and passing it to components. Also, apollo makes it easy to implement complex features like pagination, caching. Apollo can also help us in managing local state without having to use a state management library. Also, GraphQL provides performance benefits by letting us fetch only the data required by clients and batch network requests. 36 | 37 | In this workshop, you will learn how to build apps with React, GraphQL and Apollo. Various concepts of GraphQL and Apollo will be covered while building a simple e-commerce app 38 | 39 | right_content: | 40 | 41 | # Outline 42 | 43 | - What is GraphQL 44 | 45 | - GraphQL queries and type system. 46 | 47 | - Building GraphQL schema 48 | 49 | - Building GraphQL Server 50 | 51 | - Apollo setup in react projects 52 | 53 | - Querying data with Apollo 54 | 55 | - GraphQL Mutations with Apollo 56 | 57 | - Local state management with Apollo 58 | 59 | # Requirements 60 | 61 | Bring your laptop with Laptop with nodejs installed 62 | --- 63 | -------------------------------------------------------------------------------- /_reactfoo_events/2018-mumbai.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: event 3 | title: "ReactFoo Mumbai" 4 | subtitle: "On React, alternatives to React, React Native and front-end engineering." 5 | datelocation: "26 May 2018, ISDI ACE, Mumbai" 6 | city: Mumbai 7 | start_time: 2018-05-26 8 | end_time: 2018-05-26 9 | description: "A conference on React, alternatives to React, React Native and front-end engineering." 10 | 11 | venue: 12 | label: ISDI ACE, Dice Districts, Mumbai 13 | address: | 14 | Dice Districts, Colab Area, 7th Floor, ISDI ACE, Tower 2B, 841, Senapati Bapat Pawar Marg, BDD Chawl, Lower Parel, Mumbai, Maharashtra - 400013. 15 | lat: 19.007142 16 | lng: 72.833581 17 | google_maps_url: https://goo.gl/maps/wds7WB44b3x 18 | 19 | boxoffice_item_collection: "066a9093-6995-434c-8cf9-91c3a5769759" 20 | funnel: 21 | url: "https://hasgeek.com/reactfoo/2018-mumbai/" 22 | open: false 23 | schedule: 24 | url: "https://hasgeek.com/reactfoo/2018-mumbai/schedule" 25 | json_url: "https://hasgeek.com/reactfoo/2018-mumbai/schedule/json" 26 | type: "conference" 27 | 28 | related_events: 29 | - reactfoo-2018-pune-react-0-to-100 30 | - reactfoo-2018-mumbai-graphql-apollo-workshop 31 | - reactfoo-2018-delhi 32 | 33 | 34 | overview: 35 | left_content: | 36 | After successful editions in Bangalore and Pune, ReactFoo travels to other cities like Hyderabad, Mumbai and Delhi. The Mumbai edition will focus on the following topics: 37 | 38 | 1. Success and failure stories of implementing React and React Native for your use-case. 39 | 2. Your experiences with alternatives to React – such as Angular, Vue and other frameworks – why these worked / did not work for your use-case. 40 | 3. Front-end architecture patterns and approaches with React. 41 | 4. Mobile engineering with React Native or alternatives. 42 | 43 | 44 | **ReactFoo Mumbai is an event for JavaScript and front-end engineers, cross-platform developers.** 45 | 46 | ReactFoo Mumbai is a single-day event with talks and Birds Of Feather (BOF) sessions. 47 | 48 | Hands-on workshops for 30-40 participants will be held on next day of the conference. Workshops will be announced shortly. **Tickets have to be purchased separately.** 49 | 50 | right_content: | 51 | ### Who should attend? 52 | 53 | * Front-end engineers and JS engineers. 54 | * Decision-makers considering the pros and cons of switching to React and React Native. 55 | * Cross-platform mobile developers and React Native enthusiasts. 56 | 57 | ### Why you should attend? 58 | 59 | * To learn from and network with peers from the industry. 60 | * To gain insights from case studies of practical implementation, and evaluate ReactJS and React Native for your work. 61 | * To become better at front-end engineering. 62 | 63 | sponsor: 64 | blurb: | 65 | Sponsor for developer evangelism, community outreach and hiring. 66 | 67 | Download our sponsorship deck or reach out to us for customized options at [info@hasgeek.com](mailto:info@hasgeek.com) 68 | sponsorship_deck_url: 'http://hsgk.in/reactfoo2018sponsor' 69 | sponsors: 70 | - title: "Bronze Sponsor" 71 | size: "l" 72 | sponsors: 73 | - twg 74 | 75 | - title: "T-shirt Sponsor" 76 | size: "l" 77 | sponsors: 78 | - bigbinary 79 | 80 | - title: "Venue Partner" 81 | size: "l" 82 | sponsors: 83 | - isdi 84 | --- 85 | -------------------------------------------------------------------------------- /_reactfoo_events/2018-pune-react-native-workshop.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: workshop 3 | title: "React Native Workshop" 4 | subtitle: "Learn React Native by building a crypto currencies app" 5 | datelocation: "9:00AM to 1:15PM, 20 January 2018, Pune" 6 | city: Bangalore 7 | start_time: 2018-01-20 8 | end_time: 2018-01-20 9 | description: "Learn React Native by building a crypto currencies app" 10 | 11 | venue: 12 | label: Wingify, Pune 13 | address: | 14 | Wingify, 15 | 402, 4th Floor, Zero One Building, 16 | Near Passport office, Mundhwa Road, Pune 411036 17 | lat: 18.530485 18 | lng: 73.913642 19 | google_maps_url: https://goo.gl/maps/AHwjAxxytKE2 20 | 21 | boxoffice_item_collection: "2cf1627e-208f-4db4-8df6-590dc3454bbd" 22 | 23 | instructors: 24 | - name: Chirag Shah 25 | image_url: https://images.hasgeek.com/embed/file/4615a81fa19140b3bef130aa09156150 26 | website: 27 | url: https://blog.bigbinary.com/authors/chiraggshah/ 28 | label: Blog 29 | byline: Developer at BigBinary 30 | overview: 31 | 32 | 33 | center_content: | 34 | ## Outline: 35 | 36 | 37 | **Session 1 - What is react native ? (30 mins)** 38 | 39 | * Intro to React Native (15 mins) 40 | * Why react native (15 mins) 41 | 42 | **Session 2 - Basics ? (60 mins)** 43 | 44 | * Hello World App (15 mins) 45 | * Tooling: IDE, packager, developer tools, debugging, scripts setup (20 mins) 46 | * Understanding the code for hello world (10 mins) 47 | * Styles/Working with flex box (15 mins) 48 | * Debugging (15 mins) 49 | 50 | **Session 3 - Lets build a crypto currencies app - Part 1(45 mins)** 51 | 52 | * App Setup(15 mins) 53 | * Build a list view to show a list of cryptocurrencies and their current values (30 mins) 54 | 55 | **Session 4 - Lets build a crypto currencies app - Part 2(45 mins)** 56 | 57 | * Add styling to make the app look presentable(15 mins) 58 | * Working/Fetching data from an API (30 mins) 59 | 60 | **Session 5 - Lets build a crypto currencies app - Part 3(60 mins)** 61 | 62 | * Implementing a search feature(20 mins) 63 | * Adding ability to change the base currency(20 mins) 64 | * Implementing navigation(20 mins) 65 | 66 | 67 | --- 68 | -------------------------------------------------------------------------------- /_reactfoo_events/2019-delhi.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: event 3 | title: "ReactFoo Delhi" 4 | subtitle: "On React, front-end engineering and performance." 5 | datelocation: "16 November 2019, India International Centre, Max Mueller Marg, New Delhi" 6 | hasgeek_url: https://hasgeek.com/reactfoo/2019-delhi/ 7 | city: Delhi/NCR 8 | start_time: 2019-11-16 9 | end_time: 2019-11-17 10 | description: "A conference on React, front-end engineering and performance." 11 | boxoffice_item_collection: "50f9500b-691d-476a-87c4-9f610f23cbde" 12 | funnel: 13 | url: "https://hasgeek.com/reactfoo/2019-delhi/" 14 | open: true 15 | logo: 16 | image_url: /images/reactfoo-logo.png 17 | schedule: 18 | url: "https://hasgeek.com/reactfoo/2019-delhi/schedule" 19 | json_url: "https://hasgeek.com/reactfoo/2019-delhi/schedule/json" 20 | type: "conference" 21 | venue: 22 | label: CD Deshmukh Auditorium, India International Centre, Max Mueller Marg, New Delhi 23 | address: | 24 | India International Centre (IIC), Main Building, CD Deshmukh Auditorium, Max Mueller Marg, Lodhi Gardens, New Delhi - 110003. 25 | lat: 28.593287 26 | lng: 77.222617 27 | google_maps_url: https://goo.gl/maps/Sj99PNenYqn 28 | overview: 29 | left_content: | 30 | ### After a successful edition in Delhi in 2018, we are back with the 2019 edition of ReactFoo Delhi. 31 | 32 | ReactFoo Delhi will feature talks on the following topics: 33 | * UI improvements with React 34 | * Case studies of patterns and anti-patterns when running React on the front-end 35 | * Component architecture where your app contains React and other components such as Angular, Vue, Ember, and others 36 | * React Native and why it has worked for your use case 37 | * Performance improvements with React, including metrics data and before-after scenarios 38 | 39 | 40 | **ReactFoo Delhi is an event for JavaScript, React and front-end engineers.** 41 | 42 | ReactFoo Delhi is a single-day event with talks and Birds Of Feather (BOF) sessions. 43 | 44 | Hands-on workshops for 30-40 participants will be held on next day of the conference. **Tickets have to be purchased separately.** 45 | 46 | right_content: | 47 | ### Who should attend? 48 | 49 | * Front-end engineers 50 | * JS engineers from enterprises. 51 | * JS engineers from startups. 52 | * Architects. 53 | * Cross-platform mobile developers. 54 | * Everyone interested in building performant apps 55 | 56 | ### Why you should attend? 57 | 58 | * To learn from and network with peers from the industry. 59 | * To gain insights from case studies of practical implementation, and evaluate ReactJS and React Native for your work. 60 | * To make your web applications faster and performant. 61 | 62 | sponsor: 63 | blurb: | 64 | Sponsor for developer evangelism, community outreach and hiring. 65 | 66 | Download our sponsorship deck or reach out to us for customized options at [sales@hasgeek.com](mailto:sales@hasgeek.com) 67 | sponsorship_deck_url: 'https://hsgk.in/ReactFoo_Delhi19' 68 | sponsors: 69 | - title: "Bronze Sponsor" 70 | size: "l" 71 | sponsors: 72 | - shuttl 73 | 74 | blog: 75 | feed_url: https://medium.com/feed/reactfoo 76 | url: https://medium.com/reactfoo 77 | title: ReactFoo 78 | 79 | hasjob: 80 | url: https://hasjob.co?q=react 81 | limit: 8 82 | 83 | --- 84 | -------------------------------------------------------------------------------- /_rootconf_events/2018-docker-meetup-tf.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: workshop 3 | title: "Docker meetup" 4 | subtitle: "A hands-on workshop on Docker" 5 | datelocation: "28 April 2018, 09:30 AM-1:00 PM, ThoughtFactory, Bangalore" 6 | city: Bangalore 7 | start_time: 2018-04-28 8 | end_time: 2018-04-28 9 | description: "A hands-on workshop on Docker" 10 | boxoffice_item_collection: "4ddfce95-efb8-49c6-b5d5-46acac05b6c4" 11 | 12 | venue: 13 | label: ThoughtFactory, Bangalore 14 | address: | 15 | ThoughtFactory, 16 | Tower D, 2nd Floor, 17 | Diamond District, Bengaluru, Karnataka 560102 18 | lat: 12.95921 19 | lng: 77.64431 20 | google_maps_url: https://goo.gl/maps/eaNceNnatu62 21 | 22 | instructors: 23 | - name: Elton Stoneman 24 | image_url: https://images.hasgeek.com/embed/file/dad21e056d0a4e2c827430c005983c2e 25 | website: 26 | url: https://blog.sixeyed.com/ 27 | label: blog.sixeyed.com 28 | byline: Developer Advocate @docker. Microsoft MVP. Pluralsight Author. 29 | bio: | 30 | [Elton](https://twitter.com/EltonStoneman){:target="_blank"} is an 8-time Microsoft MVP, author, trainer and speaker. 31 | 32 | overview: 33 | left_content: | 34 | 35 | # Abstract 36 | This is a hands-on workshop on deploying windows on Docker and modernising .net apps with Docker 37 | 38 | # Who is this Workshop for? 39 | 40 | Developers who wants to Dockerize their application on Windows. 41 | 42 | right_content: | 43 | 44 | # Outline 45 | 46 | 1. Docker on Windows - The Beginner's Guide: Containers are a new, lightweight model of compute and Docker lets you run server-side apps using the exact same platform on your dev laptop and in a highly-available cluster in the cloud. In this first session you'll learn the basics of Docker on Windows - how to build, ship and run apps as containers - and you'll learn why Docker is such a big deal. 47 | 2. Modernizing .NET Apps with Docker: Docker isn't just for greenfield .NET Core apps running in Linux - you can run existing full .NET Framework apps in containers on Windows. In this session you'll see how to take an existing .NET app and run it in Docker on Windows with no code changes. Then you'll see how Docker enables you to break features out of the app and run them in separate containers, giving you a roadmap for modernizing your existing app landscape without needing full rewrites. 48 | 49 | sponsor: 50 | blurb: | 51 | Sponsor for developer evangelism, community outreach, sales and hiring. 52 | 53 | Write to us for the sponsorship deck or for customized options at [info@hasgeek.com](mailto:info@hasgeek.com) 54 | sponsors: 55 | - title: "Venue Partner" 56 | size: "l" 57 | sponsors: 58 | - thoughtfactory 59 | --- 60 | -------------------------------------------------------------------------------- /_rootconf_events/2018-monitoring-servers.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: workshop 3 | title: "Workshop: Monitoring Servers using Collectd, Riemann, Graphite and Grafana" 4 | subtitle: "Make your server monitoring cost effective using open source tools." 5 | datelocation: "10 AM to 1:30 PM, 13 May 2018,HasGeek House, Bangalore" 6 | city: Bangalore 7 | start_time: 2018-05-13 8 | end_time: 2018-05-13 9 | description: "This workshop focuses on setting up of Riemann, Graphite and Grafana on Docker and then using collectd to send metrics to Riemann from a server." 10 | boxoffice_item_collection: "e2ea67ca-e20a-4f89-80c9-20641e04c13d" 11 | 12 | instructors: 13 | - name: Vasu Adari 14 | image_url: https://images.hasgeek.com/embed/file/4967392ef30b46739f465430197a0ec6 15 | website: 16 | url: https://github.com/vasuadari 17 | label: Github 18 | byline: Engineer, Scripbox 19 | bio: | 20 | Working as DevOps Engineer at Scripbox. Having 5 years of experience in Ruby on Rails. Currently working on Elixir and Phoenix. 21 | 22 | related_events: 23 | - rootconf-2018 24 | - rootconf-2018-designing-microservices 25 | - rootconf-2018-designing-restful-apis 26 | - rootconf-2018-automation-with-ansible 27 | - rootconf-2018-kubernetes-201 28 | - rootconf-2018-scalable-applications-openfaas 29 | - rootconf-2018-unittests-for-python 30 | 31 | venue: 32 | label: HasGeek House, Bangalore 33 | lat: 12.96149473 34 | lng: 77.64430654 35 | address: | 36 | 2699, 19th Main Road 37 | HAL 2nd Stage, Indiranagar 38 | Bengaluru, Karnataka 560008 39 | google_maps_url: https://goo.gl/maps/1oAmjTuHXMv 40 | 41 | overview: 42 | left_content: | 43 | 44 | # Abstract 45 | This workshop aims to help attendees in getting familiar with monitoring tools so that the focus can be extended to measuring application performance and business outcomes rather than just stock 46 | concerns like disk, CPU and memory. 47 | 48 | In this workshop, we would be setting up tools to collect metrics and visualizing them, using dashboards. While making use of annotation and alerts, we will learn to detect, diagnose and resolve faults. 49 | 50 | # Target Audience 51 | 52 | - Beginners to Monitoring tools 53 | 54 | - Newbies to handling infrastructure 55 | 56 | - Fast growing Start-ups looking to make better use of their infrastructure 57 | 58 | right_content: | 59 | 60 | # Approach 61 | 62 | The first hour, we’ll discuss about basics of monitoring and its benefits. Then we will get our hands dirty with setting up monitoring tools. 63 | 64 | # Outline 65 | 66 | 1. Benefits of monitoring 67 | 2. Setup of monitoring tools 68 | 3. Sending server metrics like Memory, CPU, Disk & Network 69 | 4. Show sample monitoring dashboards 70 | 71 | # Pre-requisites 72 | 73 | - Participants should be comfortable with Unix system 74 | - Participants should be familiar with docker 75 | 76 | --- 77 | -------------------------------------------------------------------------------- /_rootconf_events/2018-tor-meetup-mumbai.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: event 3 | title: "Mumbai Tor meet-up and User Testing session" 4 | subtitle: "On privacy and security" 5 | datelocation: "20 Jan 2018, 12 PM – 3:30 PM, Only Much Louder (OML), Mumbai" 6 | city: Mumbai 7 | start_time: 2018-01-20 8 | end_time: 2018-01-20 9 | description: "A session on user research practices at Tor, and testing new features." 10 | boxoffice_item_collection: "080954e0-e6be-491a-b3e2-c646bd39a393" 11 | 12 | venue: 13 | label: Only Much Louder (OML), Mumbai 14 | address: | 15 | Only Much Louder (OML) 16 | 242 B, New Mahalaxmi Silk Mills, Mathurdas Mills Compound, N.M Joshi Marg, Lower Parel, Mumbai, Maharashtra 400013 17 | lat: 19.000556 18 | lng: 72.830249 19 | google_maps_url: https://goo.gl/maps/XPUnJNakMc52 20 | 21 | overview: 22 | center_content: | 23 | Tor is free software for enabling anonymous communication. The name is derived from an acronym for the original software project name "The Onion Router". 24 | On 20 January 2018, Tor researchers – Antonela Debiasi and Sukhbir Singh – will be in Mumbai, speaking about: 25 | 1. User research practices at Tor. 26 | 2. Demonstrating new features on Tor. 27 | 3. Testing new features with users who are familiar and new to Tor. 28 | Lunch and tea/coffee will be provided to all attendees. 29 | --- 30 | -------------------------------------------------------------------------------- /_rootconf_events/legacy-code-open-house.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: workshop 3 | title: "Open House on modelling costs of security issues in legacy code" 4 | subtitle: "Learn more about legacy code and the costs associated with it." 5 | datelocation: "20 April 2018, 05:00 PM-07:00 PM, HasGeek House, Bangalore" 6 | city: Bangalore 7 | start_time: 2018-04-20 8 | end_time: 2018-04-20 9 | description: "Learn more about legacy code and the costs associated with it." 10 | boxoffice_item_collection: "2ec2b0aa-5b99-45ca-ab34-2b353cbf9168" 11 | venue: 12 | label: HasGeek House, Bangalore 13 | address: | 14 | HasGeek House, 15 | #2699, 19th Main, 5th Cross, HAL 2nd Stage, Indira Nagar, Bengaluru, Karnataka 560103, India 16 | lat: 12.9615312 17 | lng: 77.6443048 18 | google_maps_url: https://goo.gl/maps/zcNxsSAykgF2 19 | 20 | speakers: 21 | - name: "Anand Venkatanarayanan" 22 | image_url: https://images.hasgeek.com/embed/file/5d467c4f42954284a2e6aeb86db09088 23 | bio: | 24 | Anand V stumbled upon into Application security 3 years back, after a career of 17 years spanning Data security, Linux device drivers, Linux Multipath drivers, JIT compilers for GPU programming and Network device drivers. He also spent 2 years in option trading, while managing outsourcing contracts with service providers, which gave him the capital for a decent life. In another life, he knew about stocks and bonds, before he completed engineering and hence believes that finance is more difficult to comprehend than taxation. 25 | 26 | overview: 27 | left_content: | 28 | Software always stays longer in the field than intended. It usually gets deployed and used in places where the developers did not anticipate because of revenue pressures. The classical product management problem is to maximize features that maximize revenue. Security hardening is a mostly an afterthought, if at all. And lifecycle costs are never factored in. Security issues and the cost that it brings towards the end of the life cycle, sometimes far outweighs the entire revenue stream. While this fact is known, it is not widely practiced. 29 | 30 | In this round table gathering, Anand V will talk about the modelling that needs to be typically done to factor security costs while maintaining legacy code, and the framework for thinking about these costs. 31 | 32 | Key outcomes from this round-table: 33 | 34 | 1. Learn how to model costs of security in maintaining legacy code. 35 | 2. Take away a framework for thinking how to factor security costs. 36 | 37 | right_content: | 38 | ## Format 39 | Anand will speak for 40 minutes, following which, participants can share their use cases and discuss how they can develop modelling frameworks that suit their needs. 40 | 41 | Time: 5 PM - 7 PM 42 | 43 | Venue: HasGeek House, #2699, 19th Main, 5th Cross, Indiranagar HAL 2nd Stage, Bangalore - 560008 44 | 45 | --- -------------------------------------------------------------------------------- /_sass/_base.scss: -------------------------------------------------------------------------------- 1 | .p-48{ 2 | padding: 48px; 3 | } 4 | /* Media query breakpoints */ 5 | /* Custom, iPhone Retina */ 6 | $break-xxs: 320px; 7 | 8 | /* Extra Small Devices, Phones */ 9 | $break-xs: 480px; 10 | 11 | /* Small Devices, Tablets */ 12 | $break-s: 768px; 13 | 14 | /* Medium Devices, Desktops */ 15 | $break-m: 992px; 16 | 17 | /* Large Devices, Wide Screens */ 18 | $break-l: 1200px; 19 | 20 | /* z-index */ 21 | .z-index-1{ 22 | z-index: 1; 23 | } 24 | 25 | .text-decoration-none{ 26 | text-decoration: none; 27 | } 28 | 29 | .text-decoration-underline{ 30 | text-decoration: underline; 31 | } 32 | 33 | .text-center{ 34 | text-align: center; 35 | } 36 | .opacity-none{ 37 | opacity: 0 !important; 38 | } 39 | .background-none{ 40 | background: none !important; 41 | } 42 | 43 | .card-box-shadow{ 44 | -webkit-box-shadow: 12px 15px 20px 0 rgba(46,61,73,.15); 45 | -moz-box-shadow: 12px 15px 20px 0 rgba(46,61,73,.15); 46 | box-shadow: 12px 15px 20px 0 rgba(46,61,73,.15); 47 | } 48 | .position-relative{ 49 | position: relative; 50 | } 51 | 52 | .position-absolute{ 53 | position: absolute; 54 | } 55 | .display-inline{ 56 | display: inline; 57 | } 58 | 59 | 60 | .image-overlay { 61 | position: relative; 62 | width: 100%; 63 | } 64 | 65 | .image { 66 | display: block; 67 | width: 100%; 68 | height: auto; 69 | } 70 | 71 | .overlay { 72 | position: absolute; 73 | top: 0; 74 | bottom: 0; 75 | left: 0; 76 | right: 0; 77 | height: 100%; 78 | width: 100%; 79 | opacity: 0; 80 | transition: .5s ease; 81 | background-color: #4a4a4a; 82 | } 83 | 84 | .image-overlay:hover .overlay { 85 | opacity: 0.8; 86 | } 87 | 88 | .text { 89 | color: white; 90 | font-size: 20px; 91 | position: absolute; 92 | top: 50%; 93 | left: 50%; 94 | transform: translate(-50%, -50%); 95 | -ms-transform: translate(-50%, -50%); 96 | } 97 | 98 | iframe { 99 | width: 100%; 100 | } 101 | -------------------------------------------------------------------------------- /_sass/_boxoffice.scss: -------------------------------------------------------------------------------- 1 | #boxoffice-widget .boxoffice-button-action { 2 | background-color: $primary; 3 | border-color: #B94C1D; 4 | color: #fff; 5 | } 6 | #boxoffice-widget .boxoffice-button-info { 7 | background-color: $primary; 8 | border-color: #2A9CBE; 9 | color: #fff; 10 | } 11 | #boxoffice-widget .payment-stages-bg { 12 | background-color: $primary; 13 | } 14 | #boxoffice-widget .progress-indicator>li { 15 | color: #fff; 16 | } 17 | #boxoffice-widget .progress-indicator>li.active { 18 | color: #fff; 19 | } 20 | #boxoffice-widget .category-heading { 21 | background-color: $primary; 22 | border-bottom: 3px solid #3e50a3; 23 | color: #fff; 24 | line-height: 1.1; 25 | } 26 | #boxoffice-widget .category-heading:after { 27 | border-color: $primary #fff $primary $primary; 28 | } 29 | #boxoffice-widget .ticket-description ol { 30 | list-style-position: inside; 31 | padding-left: 20px; 32 | } 33 | -------------------------------------------------------------------------------- /_sass/_button.scss: -------------------------------------------------------------------------------- 1 | 2 | /* Color Themes - Variables */ 3 | 4 | $dark-blue: #3E50A3; 5 | $orange: #eb5b1f; 6 | 7 | 8 | /* Common Colors - Variables */ 9 | 10 | $off-wht: #fafafa; 11 | 12 | /* Mixins */ 13 | 14 | @mixin btn-theme($btn-color) { 15 | border-color: darken($btn-color, 10%); 16 | background-color: $btn-color; 17 | &:hover { 18 | background-color: darken($btn-color, 6%); 19 | /* box-shadow: 0 .125em $off-wht, inset 0 .063em $off-wht, inset 0 -.188em lighten($btn-color, 2%); */ 20 | color: $off-wht; 21 | } 22 | &:active { 23 | box-shadow: 0 .063em $off-wht, inset 0 0 1.094em darken($btn-color, 10%),inset 0 -0.188em darken($btn-color, 20%); 24 | } 25 | } 26 | 27 | @mixin trans($val...) { 28 | -webkit-transition: $val; 29 | -moz-transition: $val; 30 | -o-transition: $val; 31 | transition: $val; 32 | } 33 | 34 | /* Button Global */ 35 | 36 | .btn { 37 | display: inline-block; 38 | margin: 8px; 39 | /* border: .094em solid; */ 40 | border-radius: .400em; 41 | /* box-shadow: 0 .375em .313em -.313em rgba(black,.8), inset 0 .063em $off-wht, inset 0 -.188em rgba(black,.15); */ 42 | color: #FFF; 43 | @include trans(0.2s ease-in-out); 44 | text: { 45 | decoration: none; 46 | shadow: 0 .063em rgba(black,.3); 47 | } 48 | cursor:pointer; 49 | &:focus{ 50 | outline: none; 51 | color: #fff; 52 | } 53 | } 54 | 55 | .btn-l{ 56 | padding: .938em 1.875em; 57 | } 58 | 59 | /* Themes */ 60 | .dark-blue { 61 | @include btn-theme($dark-blue); 62 | } 63 | .orange { 64 | @include btn-theme($orange); 65 | } 66 | -------------------------------------------------------------------------------- /_sass/_color.scss: -------------------------------------------------------------------------------- 1 | 2 | .bg-hg-orange{ 3 | background-color: #eb5b1f; /* The one and only hasgeek orange */ 4 | } 5 | 6 | .off-white{ 7 | background-color: #fAfAfA; 8 | } 9 | -------------------------------------------------------------------------------- /_sass/_helper.scss: -------------------------------------------------------------------------------- 1 | /* This creates custom margin classes based on the values added. Eg. .mt-24 is margin-top: 24px */ 2 | @mixin generate-spacing-classes( 3 | $default-space-amounts-with-direction: (0 left l, 4 left l, 8 left l, 16 left l, 24 left l, 32 left l, 40 left l, 48 left l, 56 left l, 64 left l, 72 left l, 80 left l) 4 | ) { 5 | @each $space in $default-space-amounts-with-direction { 6 | .m#{nth($space, 3)}-#{nth($space, 1)} { 7 | margin-#{nth($space, 2)}: #{nth($space, 1)}px; 8 | } 9 | } 10 | } 11 | 12 | $right-space-vars: (0 right r, 4 right r, 8 right r, 16 right r, 24 right r, 32 right r, 40 right r, 48 right r, 56 right r, 64 right r, 72 right r, 80 right r); 13 | $bottom-space-vars: (0 bottom b, 4 bottom b, 8 bottom b, 16 bottom b, 24 bottom b, 32 bottom b, 40 bottom b, 48 bottom b, 56 bottom b, 64 bottom b, 72 bottom b, 80 bottom b); 14 | $top-space-vars: (0 top t, 4 top t, 8 top t, 16 top t, 24 top t, 32 top t, 40 top t, 48 top t, 56 top t, 64 top t, 72 top t, 80 top t); 15 | 16 | @include generate-spacing-classes(); // left comes by default 17 | @include generate-spacing-classes($right-space-vars); 18 | @include generate-spacing-classes($bottom-space-vars); 19 | @include generate-spacing-classes($top-space-vars); 20 | 21 | /*----------*/ 22 | 23 | /* This creates custom padding classes based on the values added. Eg. .pt-24 is padding-top: 24px */ 24 | @mixin generate-spacing-classes( 25 | $default-space-amounts-with-direction: (0 left l, 4 left l, 8 left l, 16 left l, 24 left l, 32 left l, 40 left l, 48 left l, 56 left l, 64 left l, 72 left l, 80 left l) 26 | ) { 27 | @each $space in $default-space-amounts-with-direction { 28 | .p#{nth($space, 3)}-#{nth($space, 1)} { 29 | padding-#{nth($space, 2)}: #{nth($space, 1)}px; 30 | } 31 | } 32 | } 33 | 34 | $right-space-vars: (0 right r, 4 right r, 8 right r, 16 right r, 24 right r, 32 right r, 40 right r, 48 right r, 56 right r, 64 right r, 72 right r, 80 right r); 35 | $bottom-space-vars: (0 bottom b, 4 bottom b, 8 bottom b, 16 bottom b, 24 bottom b, 32 bottom b, 40 bottom b, 48 bottom b, 56 bottom b, 64 bottom b, 72 bottom b, 80 bottom b); 36 | $top-space-vars: (0 bottom t, 4 top t, 8 top t, 16 top t, 24 top t, 32 top t, 40 top t, 48 top t, 56 top t, 64 top t, 72 top t, 80 top t); 37 | 38 | @include generate-spacing-classes(); // left comes by default 39 | @include generate-spacing-classes($right-space-vars); 40 | @include generate-spacing-classes($bottom-space-vars); 41 | @include generate-spacing-classes($top-space-vars); 42 | 43 | /*----------*/ 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /_sass/_main.scss: -------------------------------------------------------------------------------- 1 | /* This partial is for styles that are unique to the main rootconf page. When creating a partial unique to a page add a unique class to the body in the html of that page eg. . Nest your scss in this class. Eg. 2 | .rootconf-main { 3 | p { 4 | color: tomato; 5 | } 6 | h1 { 7 | color: blue; 8 | } 9 | } 10 | This prevents classes from overriding each other in main.css and creating chaos in the stylesheets */ 11 | 12 | .main{ 13 | font-family: 'Inconsolata', monospace; 14 | 15 | .masthead{ 16 | background-color: #f6f9fc; 17 | width: auto; 18 | height: 400px; 19 | } 20 | .event-shoutout { 21 | background-image: linear-gradient(to bottom, rgba(129, 104, 148, 0.86) 0%, rgba(62, 53, 70, 0.91) 100%), url(https://c1.staticflickr.com/6/5747/22752109178_1b12151e17_b.jpg); 22 | background-repeat: no-repeat; 23 | background-size: cover; 24 | background-position: top center; 25 | } 26 | .event-shoutout-position{ 27 | position: relative; 28 | top: -100px; 29 | } 30 | .card { 31 | @extend .off-white; 32 | 33 | &:hover { 34 | @extend .card-box-shadow; 35 | } 36 | } 37 | .meetup{ 38 | .card-heading{ 39 | background-color: #0088af; 40 | padding: 20px 20px; 41 | border-radius: 5px 5px 0 0; 42 | } 43 | } 44 | .ama{ 45 | .card-heading{ 46 | background-color: #f29c4a; 47 | padding: 20px 20px; 48 | border-radius: 5px 5px 0 0; 49 | } 50 | } 51 | .workshop{ 52 | .card-heading{ 53 | background-color: #239C70; 54 | padding: 20px 20px; 55 | border-radius: 5px 5px 0 0; 56 | } 57 | } 58 | .blog{ 59 | hr{ 60 | margin-top: 10px; 61 | margin-bottom: 10px; 62 | } 63 | .panel-heading{ 64 | padding: 5px 5px 0 5px; 65 | } 66 | .nav-tabs{ 67 | border-bottom: none; 68 | } 69 | .nav-justified{ 70 | margin-bottom: -1px; 71 | } 72 | } 73 | .nav-tabs{ 74 | li{ 75 | a{ 76 | color: #fff; 77 | &:hover{ 78 | color: #fff; 79 | } 80 | &:focus{ 81 | color: #fff; 82 | } 83 | } 84 | } 85 | } 86 | 87 | }// 88 | 89 | 90 | .panel-primary{ 91 | .nav-tabs{ 92 | a{ 93 | color: #fff; 94 | background-color: #3071a9; 95 | border-color: transparent; 96 | &:hover{ 97 | color: #fff; 98 | background-color: #3071a9; 99 | border-color: transparent; 100 | } 101 | &:focus{ 102 | color: #fff; 103 | background-color: #3071a9; 104 | border-color: transparent; 105 | } 106 | } 107 | } 108 | } 109 | 110 | 111 | .nav-tabs > li.active > a, 112 | .nav-tabs > li.active > a:hover, 113 | .nav-tabs > li.active > a:focus { 114 | color: #428bca; 115 | background-color: #fff; 116 | border-color: #428bca; 117 | border-bottom-color: transparent; 118 | } 119 | 120 | 121 | .grid-item { width: 200px; } 122 | .grid-item--width2 { width: 400px; } 123 | 124 | .affix { 125 | top: -150px; 126 | width: 100%; 127 | z-index: 100; 128 | } 129 | 130 | .nav-wrapper{ 131 | height: 53px; 132 | } 133 | /* .affix + .container-fluid { 134 | padding-top: 70px; 135 | } 136 | */ 137 | 138 | @media only screen and (max-width: 500px) { 139 | .attendee-stories { 140 | .carousel-control{ 141 | display: none; 142 | } 143 | } 144 | } 145 | -------------------------------------------------------------------------------- /_sass/_navbar.scss: -------------------------------------------------------------------------------- 1 | /* Primary Navbar */ 2 | .primary-navbar { 3 | ul { 4 | list-style-type: none; 5 | margin: 0; 6 | padding: 0; 7 | overflow: hidden; 8 | background-color: #000000; 9 | } 10 | 11 | li { 12 | float: left; 13 | } 14 | 15 | li a { 16 | display: block; 17 | color: #9C9C9C; 18 | text-align: center; 19 | padding: 14px 16px; 20 | text-decoration: none; 21 | &:hover{ 22 | color: #f8f8f8; 23 | top: -2px; 24 | position: relative; 25 | -webkit-transition-duration: 0.4s; /* Safari */ 26 | transition-duration: 0.2s; 27 | } 28 | } 29 | 30 | .gradient { 31 | background: -webkit-linear-gradient(left, #816894, #816894, #df5e0e, #f0a40c); 32 | -webkit-background-clip: text; 33 | -webkit-text-fill-color: transparent; 34 | } 35 | 36 | } 37 | 38 | .secondary-navbar { 39 | .affix { 40 | top: 0; 41 | width: 100%; 42 | } 43 | 44 | .affix + .container-fluid { 45 | padding-top: 70px; 46 | } 47 | 48 | }/* /.secondary navbar */ 49 | 50 | .secondary-nav-fixed-height { 51 | height: 50px; 52 | } 53 | -------------------------------------------------------------------------------- /_sass/_outreach.scss: -------------------------------------------------------------------------------- 1 | #outreach-widget .outreach-button-action { 2 | background: $primary; 3 | border-color: #a64508; 4 | color: #fff; 5 | border-width: 0 0 3px; 6 | } 7 | #outreach-widget .outreach-button-info { 8 | background-color: $primary; 9 | border-color: #ADADAD; 10 | color: #333; 11 | border-width: 1px 1px 3px; 12 | } 13 | .category-heading { 14 | font-size: 1.650rem; 15 | line-height: 1.30; 16 | font-weight: 500; 17 | margin-top: 1.00rem!important; 18 | margin-bottom: 0!important; 19 | padding: 0 15px; 20 | } 21 | .category-description { 22 | margin: 0; 23 | } 24 | #outreach-widget .ticket-description { 25 | font-size: .800rem; 26 | line-height: 1.60; 27 | } -------------------------------------------------------------------------------- /_sass/_testimonial.scss: -------------------------------------------------------------------------------- 1 | .speech-bubble { 2 | display: inline-block; 3 | vertical-align: top; 4 | float: none; 5 | margin-bottom: 40px; 6 | } 7 | 8 | @media (min-width: 768px) { 9 | .speech-bubble { 10 | margin: 0 2.5% 40px 0; 11 | width: 45%; 12 | } 13 | } 14 | 15 | .rectangle-speech-border { 16 | position:relative; 17 | padding:25px; 18 | margin:1em 0 2.4em; 19 | border:10px solid $primary; 20 | text-align:center; 21 | color:#333; 22 | background:#fff; 23 | /* css3 */ 24 | -webkit-border-radius:20px; 25 | -moz-border-radius:20px; 26 | border-radius:20px; 27 | font-size: 16px; 28 | } 29 | 30 | /* creates larger curve */ 31 | .rectangle-speech-border:before { 32 | content:""; 33 | position:absolute; 34 | z-index:2; 35 | bottom: -30px; 36 | left: 58px; 37 | width: 47px; 38 | height: 30px; 39 | border-style: solid; 40 | border-width: 0 10px 10px 0; 41 | border-color: #fff $primary $primary $primary; 42 | background:#fff; 43 | /* css3 */ 44 | -webkit-border-bottom-right-radius:80px 50px; 45 | -moz-border-radius-bottomright:80px 50px; 46 | border-bottom-right-radius:80px 50px; 47 | /* reduce the damage in FF3.0 */ 48 | display:block; 49 | } 50 | 51 | /* creates smaller curve */ 52 | .rectangle-speech-border:after { 53 | content:""; 54 | position:absolute; 55 | z-index:2; 56 | bottom: -30px; 57 | left: 56px; 58 | width: 11px; 59 | height: 30px; 60 | border-style: solid; 61 | border-width: 0 11px 10px 0; 62 | border-color:$primary; 63 | background:transparent; 64 | /* css3 */ 65 | -webkit-border-bottom-right-radius:40px 50px; 66 | -moz-border-radius-bottomright:40px 50px; 67 | border-bottom-right-radius:40px 50px; 68 | /* reduce the damage in FF3.0 */ 69 | display:block; 70 | } 71 | 72 | /* creates a small circle to produce a rounded point where the two curves meet */ 73 | .rectangle-speech-border > :first-child:before { 74 | content:""; 75 | position:absolute; 76 | bottom:-40px; 77 | left:50px; 78 | width:10px; 79 | height:10px; 80 | background:#c9a866; 81 | /* css3 */ 82 | -webkit-border-radius:10px; 83 | -moz-border-radius:10px; 84 | border-radius:10px; 85 | } 86 | 87 | /* creates a white rectangle to cover part of the oval border*/ 88 | .rectangle-speech-border > :first-child:after { 89 | content:""; 90 | position:absolute; 91 | bottom:-10px; 92 | left:76px; 93 | width:24px; 94 | height:15px; 95 | background:#fff; 96 | } 97 | 98 | .speech-bubble p.attendee { 99 | font-size: 15px; 100 | line-height: 1.6; 101 | margin-left: 50px; 102 | } -------------------------------------------------------------------------------- /_sass/_typography.scss: -------------------------------------------------------------------------------- 1 | /* No more font size variants please. */ 2 | @mixin generate-sizes($class, $xxs, $xs, $s, $m, $l, $xl, $xxl) { 3 | .#{$class}-xxs { font-size: $xxs; } 4 | .#{$class}-xs { font-size: $xs; } 5 | .#{$class}-s { font-size: $s; } 6 | .#{$class}-m { font-size: $m; } 7 | .#{$class}-l { font-size: $l; } 8 | .#{$class}-xl { font-size: $xl; } 9 | .#{$class}-xxl { font-size: $xxl; } 10 | } 11 | @include generate-sizes("font", 10px, 13px, 16px, 18px, 32px, 40px, 64px); 12 | 13 | /* Font color guide is here. */ 14 | .font-black{ 15 | color: #1F2D3D; 16 | } 17 | 18 | .font-steelgrey{ 19 | color: #8492a6; 20 | } 21 | 22 | .font-white{ 23 | color: #ffffff; 24 | } 25 | 26 | .font-off-white{ 27 | color: #fAfAfA; 28 | } 29 | 30 | /* Font weight is here. */ 31 | .font-light{ 32 | font-weight: 300; 33 | } 34 | 35 | .font-regular{ 36 | font-weight: 400; 37 | } 38 | 39 | .font-bold{ 40 | font-weight: 700; 41 | } -------------------------------------------------------------------------------- /_sass/bulma/base/_all.sass: -------------------------------------------------------------------------------- 1 | @charset "utf-8" 2 | 3 | @import "minireset.sass" 4 | @import "generic.sass" 5 | @import "helpers.sass" 6 | -------------------------------------------------------------------------------- /_sass/bulma/base/generic.sass: -------------------------------------------------------------------------------- 1 | html 2 | background-color: $body-background 3 | font-size: $body-size 4 | -moz-osx-font-smoothing: grayscale 5 | -webkit-font-smoothing: antialiased 6 | min-width: 300px 7 | overflow-x: hidden 8 | overflow-y: scroll 9 | text-rendering: $render-mode 10 | 11 | article, 12 | aside, 13 | figure, 14 | footer, 15 | header, 16 | hgroup, 17 | section 18 | display: block 19 | 20 | body, 21 | button, 22 | input, 23 | select, 24 | textarea 25 | font-family: $family-primary 26 | 27 | code, 28 | pre 29 | -moz-osx-font-smoothing: auto 30 | -webkit-font-smoothing: auto 31 | font-family: $family-code 32 | 33 | body 34 | color: $text 35 | font-size: 1rem 36 | font-weight: $weight-normal 37 | line-height: 1.5 38 | 39 | // Inline 40 | 41 | a 42 | color: $link 43 | cursor: pointer 44 | text-decoration: none 45 | transition: none $speed $easing 46 | &:hover 47 | color: $link-hover 48 | 49 | code 50 | background-color: $code-background 51 | color: $code 52 | font-size: 0.8em 53 | font-weight: normal 54 | padding: 0.25em 0.5em 0.25em 55 | 56 | hr 57 | background-color: $border 58 | border: none 59 | display: block 60 | height: 1px 61 | margin: 1.5rem 0 62 | 63 | img 64 | max-width: 100% 65 | 66 | input[type="checkbox"], 67 | input[type="radio"] 68 | vertical-align: baseline 69 | 70 | small 71 | font-size: 0.8em 72 | 73 | span 74 | font-style: inherit 75 | font-weight: inherit 76 | 77 | strong 78 | color: $text-strong 79 | font-weight: $weight-bold 80 | 81 | // Block 82 | 83 | pre 84 | background-color: $pre-background 85 | color: $pre 86 | font-size: 0.8em 87 | white-space: pre 88 | word-wrap: normal 89 | code 90 | +overflow-touch 91 | background: none 92 | color: inherit 93 | display: block 94 | font-size: 1em 95 | overflow-x: auto 96 | padding: 1.25rem 1.5rem 97 | 98 | table 99 | width: 100% 100 | td, 101 | th 102 | text-align: left 103 | vertical-align: top 104 | th 105 | color: $text-strong 106 | -------------------------------------------------------------------------------- /_sass/bulma/base/helpers.sass: -------------------------------------------------------------------------------- 1 | // Display 2 | 3 | $displays: 'block' 'flex' 'inline' 'inline-block' 'inline-flex' 4 | 5 | @each $display in $displays 6 | .is-#{$display} 7 | display: #{$display} 8 | .is-#{$display}-mobile 9 | +mobile 10 | display: #{$display} !important 11 | .is-#{$display}-tablet 12 | +tablet 13 | display: #{$display} !important 14 | .is-#{$display}-tablet-only 15 | +tablet-only 16 | display: #{$display} !important 17 | .is-#{$display}-touch 18 | +touch 19 | display: #{$display} !important 20 | .is-#{$display}-desktop 21 | +desktop 22 | display: #{$display} !important 23 | .is-#{$display}-desktop-only 24 | +desktop-only 25 | display: #{$display} !important 26 | .is-#{$display}-widescreen 27 | +widescreen 28 | display: #{$display} !important 29 | 30 | // Float 31 | 32 | .is-clearfix 33 | +clearfix 34 | 35 | .is-pulled-left 36 | float: left 37 | 38 | .is-pulled-right 39 | float: right 40 | 41 | // Overflow 42 | 43 | .is-clipped 44 | overflow: hidden !important 45 | 46 | // Overlay 47 | 48 | .is-overlay 49 | +overlay 50 | 51 | // Text 52 | 53 | .has-text-centered 54 | text-align: center 55 | 56 | .has-text-left 57 | text-align: left 58 | 59 | .has-text-right 60 | text-align: right 61 | 62 | @each $name, $pair in $colors 63 | $color: nth($pair, 1) 64 | .has-text-#{$name} 65 | color: $color 66 | a.has-text-#{$name} 67 | &:hover, 68 | &:focus 69 | color: darken($color, 10%) 70 | 71 | // Visibility 72 | 73 | .is-hidden 74 | display: none !important 75 | 76 | .is-hidden-mobile 77 | +mobile 78 | display: none !important 79 | 80 | .is-hidden-tablet 81 | +tablet 82 | display: none !important 83 | 84 | .is-hidden-tablet-only 85 | +tablet-only 86 | display: none !important 87 | 88 | .is-hidden-touch 89 | +touch 90 | display: none !important 91 | 92 | .is-hidden-desktop 93 | +desktop 94 | display: none !important 95 | 96 | .is-hidden-desktop-only 97 | +desktop-only 98 | display: none !important 99 | 100 | .is-hidden-widescreen 101 | +widescreen 102 | display: none !important 103 | 104 | // Other 105 | 106 | .is-marginless 107 | margin: 0 !important 108 | 109 | .is-paddingless 110 | padding: 0 !important 111 | 112 | .is-unselectable 113 | +unselectable 114 | -------------------------------------------------------------------------------- /_sass/bulma/base/minireset.sass: -------------------------------------------------------------------------------- 1 | /*! minireset.css v0.0.2 | MIT License | github.com/jgthms/minireset.css */ 2 | // Blocks 3 | html, 4 | body, 5 | p, 6 | ol, 7 | ul, 8 | li, 9 | dl, 10 | dt, 11 | dd, 12 | blockquote, 13 | figure, 14 | fieldset, 15 | legend, 16 | textarea, 17 | pre, 18 | iframe, 19 | hr, 20 | h1, 21 | h2, 22 | h3, 23 | h4, 24 | h5, 25 | h6 26 | margin: 0 27 | padding: 0 28 | 29 | // Headings 30 | h1, 31 | h2, 32 | h3, 33 | h4, 34 | h5, 35 | h6 36 | font-size: 100% 37 | font-weight: normal 38 | 39 | // List 40 | ul 41 | list-style: none 42 | 43 | // Form 44 | button, 45 | input, 46 | select, 47 | textarea 48 | margin: 0 49 | 50 | // Box sizing 51 | html 52 | box-sizing: border-box 53 | 54 | * 55 | box-sizing: inherit 56 | &:before, 57 | &:after 58 | box-sizing: inherit 59 | 60 | // Media 61 | img, 62 | embed, 63 | object, 64 | audio, 65 | video 66 | max-width: 100% 67 | 68 | // Iframe 69 | iframe 70 | border: 0 71 | 72 | // Table 73 | table 74 | border-collapse: collapse 75 | border-spacing: 0 76 | 77 | td, 78 | th 79 | padding: 0 80 | text-align: left 81 | -------------------------------------------------------------------------------- /_sass/bulma/bulma.scss: -------------------------------------------------------------------------------- 1 | /*! bulma.io v0.4.2 | MIT License | github.com/jgthms/bulma */ 2 | @import "utilities/_all"; 3 | @import "base/_all"; 4 | @import "elements/_all"; 5 | @import "components/_all"; 6 | @import "grid/_all"; 7 | @import "layout/_all"; 8 | -------------------------------------------------------------------------------- /_sass/bulma/components/_all.sass: -------------------------------------------------------------------------------- 1 | @charset "utf-8" 2 | 3 | @import "breadcrumb.sass" 4 | @import "card.sass" 5 | @import "level.sass" 6 | @import "media.sass" 7 | @import "menu.sass" 8 | @import "message.sass" 9 | @import "modal.sass" 10 | @import "nav.sass" 11 | @import "pagination.sass" 12 | @import "panel.sass" 13 | @import "tabs.sass" -------------------------------------------------------------------------------- /_sass/bulma/components/breadcrumb.sass: -------------------------------------------------------------------------------- 1 | .breadcrumb 2 | +block 3 | +unselectable 4 | align-items: stretch 5 | display: flex 6 | font-size: $size-normal 7 | overflow: hidden 8 | overflow-x: auto 9 | white-space: nowrap 10 | a 11 | align-items: center 12 | color: $text-light 13 | display: flex 14 | justify-content: center 15 | padding: 0.5em 0.75em 16 | &:hover 17 | color: $link-hover 18 | li 19 | align-items: center 20 | display: flex 21 | &.is-active 22 | a 23 | color: $text-strong 24 | cursor: default 25 | pointer-events: none 26 | & + li:before 27 | color: $text 28 | content: '\0002f' 29 | ul, ol 30 | align-items: center 31 | display: flex 32 | flex-grow: 1 33 | flex-shrink: 0 34 | justify-content: flex-start 35 | .icon 36 | &:first-child 37 | margin-right: 0.5em 38 | &:last-child 39 | margin-left: 0.5em 40 | // Alignment 41 | &.is-centered 42 | ol, ul 43 | justify-content: center 44 | &.is-right 45 | ol, ul 46 | justify-content: flex-end 47 | // Sizes 48 | &.is-small 49 | font-size: $size-small 50 | &.is-medium 51 | font-size: $size-medium 52 | &.is-large 53 | font-size: $size-large 54 | // Styles 55 | &.has-arrow-separator 56 | li + li:before 57 | content: '\02192' 58 | &.has-bullet-separator 59 | li + li:before 60 | content: '\02022' 61 | &.has-dot-separator 62 | li + li:before 63 | content: '\000b7' 64 | &.has-succeeds-separator 65 | li + li:before 66 | content: '\0227B' 67 | -------------------------------------------------------------------------------- /_sass/bulma/components/card.sass: -------------------------------------------------------------------------------- 1 | .card-header 2 | align-items: stretch 3 | box-shadow: 0 1px 2px rgba($black, 0.1) 4 | display: flex 5 | 6 | .card-header-title 7 | align-items: center 8 | color: $text-strong 9 | display: flex 10 | flex-grow: 1 11 | font-weight: $weight-bold 12 | padding: 0.75rem 13 | 14 | .card-header-icon 15 | align-items: center 16 | cursor: pointer 17 | display: flex 18 | justify-content: center 19 | padding: 0.75rem 20 | 21 | .card-image 22 | display: block 23 | position: relative 24 | 25 | .card-content 26 | padding: 1.5rem 27 | 28 | .card-footer 29 | border-top: 1px solid $border 30 | align-items: stretch 31 | display: flex 32 | 33 | .card-footer-item 34 | align-items: center 35 | display: flex 36 | flex-basis: 0 37 | flex-grow: 1 38 | flex-shrink: 0 39 | justify-content: center 40 | padding: 0.75rem 41 | &:not(:last-child) 42 | border-right: 1px solid $border 43 | 44 | .card 45 | background-color: $white 46 | box-shadow: 0 2px 3px rgba($black, 0.1), 0 0 0 1px rgba($black, 0.1) 47 | color: $text 48 | max-width: 100% 49 | position: relative 50 | .media:not(:last-child) 51 | margin-bottom: 0.75rem 52 | -------------------------------------------------------------------------------- /_sass/bulma/components/level.sass: -------------------------------------------------------------------------------- 1 | .level-item 2 | align-items: center 3 | display: flex 4 | flex-basis: auto 5 | flex-grow: 0 6 | flex-shrink: 0 7 | justify-content: center 8 | .title, 9 | .subtitle 10 | margin-bottom: 0 11 | // Responsiveness 12 | +mobile 13 | &:not(:last-child) 14 | margin-bottom: 0.75rem 15 | 16 | .level-left, 17 | .level-right 18 | flex-basis: auto 19 | flex-grow: 0 20 | flex-shrink: 0 21 | .level-item 22 | &:not(:last-child) 23 | margin-right: 0.75rem 24 | // Modifiers 25 | &.is-flexible 26 | flex-grow: 1 27 | 28 | .level-left 29 | align-items: center 30 | justify-content: flex-start 31 | // Responsiveness 32 | +mobile 33 | & + .level-right 34 | margin-top: 1.5rem 35 | +tablet 36 | display: flex 37 | 38 | .level-right 39 | align-items: center 40 | justify-content: flex-end 41 | // Responsiveness 42 | +tablet 43 | display: flex 44 | 45 | .level 46 | +block 47 | align-items: center 48 | justify-content: space-between 49 | code 50 | border-radius: $radius 51 | img 52 | display: inline-block 53 | vertical-align: top 54 | // Modifiers 55 | &.is-mobile 56 | display: flex 57 | .level-left, 58 | .level-right 59 | display: flex 60 | .level-left + .level-right 61 | margin-top: 0 62 | .level-item 63 | &:not(:last-child) 64 | margin-bottom: 0 65 | &:not(.is-narrow) 66 | flex-grow: 1 67 | // Responsiveness 68 | +tablet 69 | display: flex 70 | & > .level-item 71 | &:not(.is-narrow) 72 | flex-grow: 1 73 | -------------------------------------------------------------------------------- /_sass/bulma/components/media.sass: -------------------------------------------------------------------------------- 1 | .media-left, 2 | .media-right 3 | flex-basis: auto 4 | flex-grow: 0 5 | flex-shrink: 0 6 | 7 | .media-left 8 | margin-right: 1rem 9 | 10 | .media-right 11 | margin-left: 1rem 12 | 13 | .media-content 14 | flex-basis: auto 15 | flex-grow: 1 16 | flex-shrink: 1 17 | text-align: left 18 | 19 | .media 20 | align-items: flex-start 21 | display: flex 22 | text-align: left 23 | .content:not(:last-child) 24 | margin-bottom: 0.75rem 25 | .media 26 | border-top: 1px solid rgba($border, 0.5) 27 | display: flex 28 | padding-top: 0.75rem 29 | .content:not(:last-child), 30 | .control:not(:last-child) 31 | margin-bottom: 0.5rem 32 | .media 33 | padding-top: 0.5rem 34 | & + .media 35 | margin-top: 0.5rem 36 | & + .media 37 | border-top: 1px solid rgba($border, 0.5) 38 | margin-top: 1rem 39 | padding-top: 1rem 40 | // Sizes 41 | &.is-large 42 | & + .media 43 | margin-top: 1.5rem 44 | padding-top: 1.5rem 45 | -------------------------------------------------------------------------------- /_sass/bulma/components/menu.sass: -------------------------------------------------------------------------------- 1 | .menu 2 | font-size: $size-normal 3 | 4 | .menu-list 5 | line-height: 1.25 6 | a 7 | border-radius: $radius-small 8 | color: $text 9 | display: block 10 | padding: 0.5em 0.75em 11 | &:hover 12 | background-color: $background 13 | color: $link 14 | // Modifiers 15 | &.is-active 16 | background-color: $link 17 | color: $link-invert 18 | li 19 | ul 20 | border-left: 1px solid $border 21 | margin: 0.75em 22 | padding-left: 0.75em 23 | 24 | .menu-label 25 | color: $text-light 26 | font-size: 0.8em 27 | letter-spacing: 0.1em 28 | text-transform: uppercase 29 | &:not(:first-child) 30 | margin-top: 1em 31 | &:not(:last-child) 32 | margin-bottom: 1em 33 | -------------------------------------------------------------------------------- /_sass/bulma/components/message.sass: -------------------------------------------------------------------------------- 1 | .message 2 | +block 3 | background-color: $background 4 | border-radius: $radius 5 | font-size: $size-normal 6 | // Colors 7 | @each $name, $pair in $colors 8 | $color: nth($pair, 1) 9 | $color-invert: nth($pair, 2) 10 | $color-lightning: max((100% - lightness($color)) - 2%, 0%) 11 | $color-luminance: colorLuminance($color) 12 | $darken-percentage: $color-luminance * 70% 13 | $desaturate-percentage: $color-luminance * 30% 14 | &.is-#{$name} 15 | background-color: lighten($color, $color-lightning) 16 | .message-header 17 | background-color: $color 18 | color: $color-invert 19 | .message-body 20 | border-color: $color 21 | color: desaturate(darken($color, $darken-percentage), $desaturate-percentage) 22 | 23 | .message-header 24 | align-items: center 25 | background-color: $text 26 | border-radius: $radius $radius 0 0 27 | color: $text-invert 28 | display: flex 29 | justify-content: space-between 30 | line-height: 1.25 31 | padding: 0.5em 0.75em 32 | position: relative 33 | a, 34 | strong 35 | color: inherit 36 | a 37 | text-decoration: underline 38 | .delete 39 | flex-grow: 0 40 | flex-shrink: 0 41 | margin-left: 0.75em 42 | & + .message-body 43 | border-top-left-radius: 0 44 | border-top-right-radius: 0 45 | border-top: none 46 | 47 | .message-body 48 | border: 1px solid $border 49 | border-radius: $radius 50 | color: $text 51 | padding: 1em 1.25em 52 | a, 53 | strong 54 | color: inherit 55 | a 56 | text-decoration: underline 57 | code, 58 | pre 59 | background: $white 60 | pre code 61 | background: transparent 62 | -------------------------------------------------------------------------------- /_sass/bulma/components/modal.sass: -------------------------------------------------------------------------------- 1 | .modal-background 2 | +overlay 3 | background-color: rgba($black, 0.86) 4 | 5 | .modal-content, 6 | .modal-card 7 | margin: 0 20px 8 | max-height: calc(100vh - 160px) 9 | overflow: auto 10 | position: relative 11 | width: 100% 12 | // Responsiveness 13 | +tablet 14 | margin: 0 auto 15 | max-height: calc(100vh - 40px) 16 | width: 640px 17 | 18 | .modal-close 19 | +delete 20 | background: none 21 | height: 40px 22 | position: fixed 23 | right: 20px 24 | top: 20px 25 | width: 40px 26 | 27 | .modal-card 28 | display: flex 29 | flex-direction: column 30 | max-height: calc(100vh - 40px) 31 | overflow: hidden 32 | 33 | .modal-card-head, 34 | .modal-card-foot 35 | align-items: center 36 | background-color: $background 37 | display: flex 38 | flex-shrink: 0 39 | justify-content: flex-start 40 | padding: 20px 41 | position: relative 42 | 43 | .modal-card-head 44 | border-bottom: 1px solid $border 45 | border-top-left-radius: $radius-large 46 | border-top-right-radius: $radius-large 47 | 48 | .modal-card-title 49 | color: $text-strong 50 | flex-grow: 1 51 | flex-shrink: 0 52 | font-size: $size-4 53 | line-height: 1 54 | 55 | .modal-card-foot 56 | border-bottom-left-radius: $radius-large 57 | border-bottom-right-radius: $radius-large 58 | border-top: 1px solid $border 59 | .button 60 | &:not(:last-child) 61 | margin-right: 10px 62 | 63 | .modal-card-body 64 | +overflow-touch 65 | background-color: $white 66 | flex-grow: 1 67 | flex-shrink: 1 68 | overflow: auto 69 | padding: 20px 70 | 71 | .modal 72 | +overlay 73 | align-items: center 74 | display: none 75 | justify-content: center 76 | overflow: hidden 77 | position: fixed 78 | z-index: 20 79 | // Modifiers 80 | &.is-active 81 | display: flex 82 | -------------------------------------------------------------------------------- /_sass/bulma/components/nav.sass: -------------------------------------------------------------------------------- 1 | $nav-height: 3.25rem !default 2 | 3 | // Components 4 | 5 | .nav-toggle 6 | +hamburger($nav-height) 7 | // Responsiveness 8 | +tablet 9 | display: none 10 | 11 | .nav-item 12 | align-items: center 13 | display: flex 14 | flex-grow: 0 15 | flex-shrink: 0 16 | font-size: $size-normal 17 | justify-content: center 18 | line-height: 1.5 19 | padding: 0.5rem 0.75rem 20 | a 21 | flex-grow: 1 22 | flex-shrink: 0 23 | img 24 | max-height: 1.75rem 25 | .tag 26 | &:first-child:not(:last-child) 27 | margin-right: 0.5rem 28 | &:last-child:not(:first-child) 29 | margin-left: 0.5rem 30 | // Responsiveness 31 | +mobile 32 | justify-content: flex-start 33 | 34 | .nav-item a, 35 | a.nav-item 36 | color: $text-light 37 | &:hover 38 | color: $link-hover 39 | // Modifiers 40 | &.is-active 41 | color: $link-active 42 | &.is-tab 43 | border-bottom: 1px solid transparent 44 | border-top: 1px solid transparent 45 | padding-bottom: calc(0.75rem - 1px) 46 | padding-left: 1rem 47 | padding-right: 1rem 48 | padding-top: calc(0.75rem - 1px) 49 | &:hover 50 | border-bottom-color: $primary 51 | border-top-color: transparent 52 | &.is-active 53 | border-bottom: 3px solid $primary 54 | color: $primary 55 | padding-bottom: calc(0.75rem - 3px) 56 | // Responsiveness 57 | +desktop 58 | &.is-brand 59 | padding-left: 0 60 | 61 | // Containers 62 | 63 | .nav-left, 64 | .nav-right 65 | +overflow-touch 66 | align-items: stretch 67 | display: flex 68 | flex-grow: 1 69 | flex-shrink: 0 70 | max-width: 100% 71 | overflow: auto 72 | +widescreen 73 | flex-basis: 0 74 | 75 | .nav-left 76 | justify-content: flex-start 77 | white-space: nowrap 78 | 79 | .nav-right 80 | justify-content: flex-end 81 | 82 | .nav-center 83 | align-items: stretch 84 | display: flex 85 | flex-grow: 0 86 | flex-shrink: 0 87 | justify-content: center 88 | margin-left: auto 89 | margin-right: auto 90 | 91 | .nav-menu 92 | // Responsiveness 93 | +mobile 94 | &.nav-right 95 | background-color: $white 96 | box-shadow: 0 4px 7px rgba($black, 0.1) 97 | left: 0 98 | display: none 99 | right: 0 100 | top: 100% 101 | position: absolute 102 | .nav-item 103 | border-top: 1px solid rgba($border, 0.5) 104 | padding: 0.75rem 105 | &.is-active 106 | display: block 107 | 108 | // Main container 109 | 110 | .nav 111 | align-items: stretch 112 | background-color: $white 113 | display: flex 114 | height: $nav-height 115 | position: relative 116 | text-align: center 117 | z-index: 10 118 | & > .container 119 | align-items: stretch 120 | display: flex 121 | min-height: $nav-height 122 | width: 100% 123 | // Modifiers 124 | &.has-shadow 125 | box-shadow: 0 2px 3px rgba($black, 0.1) 126 | -------------------------------------------------------------------------------- /_sass/bulma/components/panel.sass: -------------------------------------------------------------------------------- 1 | .panel 2 | font-size: $size-normal 3 | &:not(:last-child) 4 | margin-bottom: 1.5rem 5 | 6 | .panel-heading, 7 | .panel-tabs, 8 | .panel-block 9 | border-bottom: 1px solid $border 10 | border-left: 1px solid $border 11 | border-right: 1px solid $border 12 | &:first-child 13 | border-top: 1px solid $border 14 | 15 | .panel-heading 16 | background-color: $background 17 | border-radius: $radius $radius 0 0 18 | color: $text-strong 19 | font-size: 1.25em 20 | font-weight: $weight-light 21 | line-height: 1.25 22 | padding: 0.5em 0.75em 23 | 24 | .panel-tabs 25 | align-items: flex-end 26 | display: flex 27 | font-size: 0.875em 28 | justify-content: center 29 | a 30 | border-bottom: 1px solid $border 31 | margin-bottom: -1px 32 | padding: 0.5em 33 | // Modifiers 34 | &.is-active 35 | border-bottom-color: $link-active-border 36 | color: $link-active 37 | 38 | .panel-list 39 | a 40 | color: $text 41 | &:hover 42 | color: $link 43 | 44 | .panel-block 45 | align-items: center 46 | color: $text-strong 47 | display: flex 48 | justify-content: flex-start 49 | padding: 0.5em 0.75em 50 | input[type="checkbox"] 51 | margin-right: 0.75em 52 | & > .control 53 | flex-grow: 1 54 | flex-shrink: 1 55 | width: 100% 56 | &.is-wrapped 57 | flex-wrap: wrap 58 | &.is-active 59 | border-left-color: $link 60 | color: $link-active 61 | .panel-icon 62 | color: $link 63 | 64 | a.panel-block, 65 | label.panel-block 66 | cursor: pointer 67 | &:hover 68 | background-color: $background 69 | 70 | .panel-icon 71 | +fa(14px, 1em) 72 | color: $text-light 73 | margin-right: 0.75em 74 | .fa 75 | font-size: inherit 76 | line-height: inherit 77 | -------------------------------------------------------------------------------- /_sass/bulma/components/tabs.sass: -------------------------------------------------------------------------------- 1 | .tabs 2 | +block 3 | +overflow-touch 4 | +unselectable 5 | align-items: stretch 6 | display: flex 7 | font-size: $size-normal 8 | justify-content: space-between 9 | overflow: hidden 10 | overflow-x: auto 11 | white-space: nowrap 12 | a 13 | align-items: center 14 | border-bottom: 1px solid $border 15 | color: $text 16 | display: flex 17 | justify-content: center 18 | margin-bottom: -1px 19 | padding: 0.5em 1em 20 | vertical-align: top 21 | &:hover 22 | border-bottom-color: $text-strong 23 | color: $text-strong 24 | li 25 | display: block 26 | &.is-active 27 | a 28 | border-bottom-color: $primary 29 | color: $primary 30 | ul 31 | align-items: center 32 | border-bottom: 1px solid $border 33 | display: flex 34 | flex-grow: 1 35 | flex-shrink: 0 36 | justify-content: flex-start 37 | &.is-left 38 | padding-right: 0.75em 39 | &.is-center 40 | flex: none 41 | justify-content: center 42 | padding-left: 0.75em 43 | padding-right: 0.75em 44 | &.is-right 45 | justify-content: flex-end 46 | padding-left: 0.75em 47 | .icon 48 | &:first-child 49 | margin-right: 0.5em 50 | &:last-child 51 | margin-left: 0.5em 52 | // Alignment 53 | &.is-centered 54 | ul 55 | justify-content: center 56 | &.is-right 57 | ul 58 | justify-content: flex-end 59 | // Styles 60 | &.is-boxed 61 | a 62 | border: 1px solid transparent 63 | border-radius: $radius $radius 0 0 64 | &:hover 65 | background-color: $background 66 | border-bottom-color: $border 67 | li 68 | &.is-active 69 | a 70 | background-color: $white 71 | border-color: $border 72 | border-bottom-color: transparent !important 73 | &.is-fullwidth 74 | li 75 | flex-grow: 1 76 | flex-shrink: 0 77 | &.is-toggle 78 | a 79 | border: 1px solid $border 80 | margin-bottom: 0 81 | position: relative 82 | &:hover 83 | background-color: $background 84 | border-color: $border-hover 85 | z-index: 2 86 | li 87 | & + li 88 | margin-left: -1px 89 | &:first-child a 90 | border-radius: $radius 0 0 $radius 91 | &:last-child a 92 | border-radius: 0 $radius $radius 0 93 | &.is-active 94 | a 95 | background-color: $primary 96 | border-color: $primary 97 | color: $primary-invert 98 | z-index: 1 99 | ul 100 | border-bottom: none 101 | // Sizes 102 | &.is-small 103 | font-size: $size-small 104 | &.is-medium 105 | font-size: $size-medium 106 | &.is-large 107 | font-size: $size-large 108 | -------------------------------------------------------------------------------- /_sass/bulma/elements/_all.sass: -------------------------------------------------------------------------------- 1 | @charset "utf-8" 2 | 3 | @import "box.sass" 4 | @import "button.sass" 5 | @import "content.sass" 6 | @import "form.sass" 7 | @import "icon.sass" 8 | @import "image.sass" 9 | @import "notification.sass" 10 | @import "progress.sass" 11 | @import "table.sass" 12 | @import "tag.sass" 13 | @import "title.sass" 14 | 15 | @import "other.sass" 16 | -------------------------------------------------------------------------------- /_sass/bulma/elements/box.sass: -------------------------------------------------------------------------------- 1 | .box 2 | +block 3 | background-color: $white 4 | border-radius: $radius-large 5 | box-shadow: 0 2px 3px rgba($black, 0.1), 0 0 0 1px rgba($black, 0.1) 6 | display: block 7 | padding: 1.25rem 8 | 9 | a.box 10 | &:hover, 11 | &:focus 12 | box-shadow: 0 2px 3px rgba($black, 0.1), 0 0 0 1px $link 13 | &:active 14 | box-shadow: inset 0 1px 2px rgba($black, 0.2), 0 0 0 1px $link 15 | -------------------------------------------------------------------------------- /_sass/bulma/elements/content.sass: -------------------------------------------------------------------------------- 1 | .content 2 | +block 3 | color: $text 4 | // Inline 5 | li + li 6 | margin-top: 0.25em 7 | // Block 8 | p, 9 | dl, 10 | ol, 11 | ul, 12 | blockquote, 13 | pre, 14 | table 15 | &:not(:last-child) 16 | margin-bottom: 1em 17 | h1, 18 | h2, 19 | h3, 20 | h4, 21 | h5, 22 | h6 23 | color: $text-strong 24 | font-weight: $weight-normal 25 | line-height: 1.5 26 | h1 27 | font-size: 2em 28 | margin-bottom: 0.5em 29 | &:not(:first-child) 30 | margin-top: 1em 31 | h2 32 | font-size: 1.75em 33 | margin-bottom: 0.5714em 34 | &:not(:first-child) 35 | margin-top: 1.1428em 36 | h3 37 | font-size: 1.5em 38 | margin-bottom: 0.6666em 39 | &:not(:first-child) 40 | margin-top: 1.3333em 41 | h4 42 | font-size: 1.25em 43 | margin-bottom: 0.8em 44 | h5 45 | font-size: 1.125em 46 | margin-bottom: 0.8888em 47 | h6 48 | font-size: 1em 49 | margin-bottom: 1em 50 | blockquote 51 | background-color: $background 52 | border-left: 5px solid $border 53 | padding: 1.25em 1.5em 54 | ol 55 | list-style: decimal outside 56 | margin-left: 2em 57 | margin-right: 2em 58 | margin-top: 1em 59 | ul 60 | list-style: disc outside 61 | margin-left: 2em 62 | margin-right: 2em 63 | margin-top: 1em 64 | ul 65 | list-style-type: circle 66 | margin-top: 0.5em 67 | ul 68 | list-style-type: square 69 | dd 70 | margin-left: 2em 71 | figure 72 | text-align: center 73 | img 74 | display: inline-block 75 | figcaption 76 | font-style: italic 77 | pre 78 | +overflow-touch 79 | overflow-x: auto 80 | padding: 1.25em 1.5em 81 | white-space: pre 82 | word-wrap: normal 83 | sup, 84 | sub 85 | font-size: 70% 86 | table 87 | width: 100% 88 | td, 89 | th 90 | border: 1px solid $border 91 | border-width: 0 0 1px 92 | padding: 0.5em 0.75em 93 | vertical-align: top 94 | th 95 | color: $text-strong 96 | text-align: left 97 | tr 98 | &:hover 99 | background-color: $background 100 | thead 101 | td, 102 | th 103 | border-width: 0 0 2px 104 | color: $text-strong 105 | tfoot 106 | td, 107 | th 108 | border-width: 2px 0 0 109 | color: $text-strong 110 | tbody 111 | tr 112 | &:last-child 113 | td, 114 | th 115 | border-bottom-width: 0 116 | // Sizes 117 | &.is-small 118 | font-size: $size-small 119 | &.is-medium 120 | font-size: $size-medium 121 | &.is-large 122 | font-size: $size-large 123 | -------------------------------------------------------------------------------- /_sass/bulma/elements/icon.sass: -------------------------------------------------------------------------------- 1 | .icon 2 | align-items: center 3 | display: inline-flex 4 | justify-content: center 5 | height: 1.5rem 6 | width: 1.5rem 7 | .fa 8 | font-size: 21px 9 | // Sizes 10 | &.is-small 11 | height: 1rem 12 | width: 1rem 13 | .fa 14 | font-size: 14px 15 | &.is-medium 16 | height: 2rem 17 | width: 2rem 18 | .fa 19 | font-size: 28px 20 | &.is-large 21 | height: 3rem 22 | width: 3rem 23 | .fa 24 | font-size: 42px 25 | -------------------------------------------------------------------------------- /_sass/bulma/elements/image.sass: -------------------------------------------------------------------------------- 1 | $dimensions: 16 24 32 48 64 96 128 2 | 3 | .image 4 | display: block 5 | position: relative 6 | img 7 | display: block 8 | height: auto 9 | width: 100% 10 | // Ratio 11 | &.is-square, 12 | &.is-1by1, 13 | &.is-4by3, 14 | &.is-3by2, 15 | &.is-16by9, 16 | &.is-2by1 17 | img 18 | +overlay 19 | height: 100% 20 | width: 100% 21 | &.is-square, 22 | &.is-1by1 23 | padding-top: 100% 24 | &.is-4by3 25 | padding-top: 75% 26 | &.is-3by2 27 | padding-top: 66.6666% 28 | &.is-16by9 29 | padding-top: 56.25% 30 | &.is-2by1 31 | padding-top: 50% 32 | // Sizes 33 | @each $dimension in $dimensions 34 | &.is-#{$dimension}x#{$dimension} 35 | height: $dimension * 1px 36 | width: $dimension * 1px 37 | -------------------------------------------------------------------------------- /_sass/bulma/elements/notification.sass: -------------------------------------------------------------------------------- 1 | .notification 2 | +block 3 | background-color: white 4 | border-radius: $radius 5 | padding: 1.25rem 1.25rem 1.25rem 1.25rem 6 | position: relative 7 | a:not(.button) 8 | color: currentColor 9 | code, 10 | pre 11 | background: $white 12 | pre code 13 | background: transparent 14 | & > .delete 15 | position: absolute 16 | right: 0.5em 17 | top: 0.5em 18 | .title, 19 | .subtitle, 20 | .content 21 | color: inherit 22 | // Colors 23 | @each $name, $pair in $colors 24 | $color: nth($pair, 1) 25 | $color-invert: nth($pair, 2) 26 | &.is-#{$name} 27 | background-color: $color 28 | color: $color-invert 29 | -------------------------------------------------------------------------------- /_sass/bulma/elements/other.sass: -------------------------------------------------------------------------------- 1 | .block 2 | +block 3 | 4 | .container 5 | position: relative 6 | +desktop 7 | margin: 0 auto 8 | max-width: $desktop - 40px 9 | width: $desktop - 40px 10 | // Modifiers 11 | &.is-fluid 12 | margin: 0 20px 13 | max-width: none 14 | width: auto 15 | +widescreen 16 | max-width: $widescreen - 40px 17 | width: $widescreen - 40px 18 | +fullhd 19 | max-width: $fullhd - 40px 20 | width: $fullhd - 40px 21 | 22 | .delete 23 | +delete 24 | 25 | .fa 26 | font-size: 21px 27 | text-align: center 28 | vertical-align: top 29 | 30 | .heading 31 | display: block 32 | font-size: 11px 33 | letter-spacing: 1px 34 | margin-bottom: 5px 35 | text-transform: uppercase 36 | 37 | .highlight 38 | +block 39 | font-weight: $weight-normal 40 | max-width: 100% 41 | overflow: hidden 42 | padding: 0 43 | pre 44 | overflow: auto 45 | max-width: 100% 46 | 47 | .loader 48 | +loader 49 | 50 | .number 51 | align-items: center 52 | background-color: $background 53 | border-radius: 290486px 54 | display: inline-flex 55 | font-size: $size-medium 56 | height: 2em 57 | justify-content: center 58 | margin-right: 1.5rem 59 | min-width: 2.5em 60 | padding: 0.25rem 0.5rem 61 | text-align: center 62 | vertical-align: top 63 | -------------------------------------------------------------------------------- /_sass/bulma/elements/progress.sass: -------------------------------------------------------------------------------- 1 | .progress 2 | +block 3 | -moz-appearance: none 4 | -webkit-appearance: none 5 | border: none 6 | border-radius: 290486px 7 | display: block 8 | height: $size-normal 9 | overflow: hidden 10 | padding: 0 11 | width: 100% 12 | &::-webkit-progress-bar 13 | background-color: $border 14 | &::-webkit-progress-value 15 | background-color: $text 16 | &::-moz-progress-bar 17 | background-color: $text 18 | // Colors 19 | @each $name, $pair in $colors 20 | $color: nth($pair, 1) 21 | &.is-#{$name} 22 | &::-webkit-progress-value 23 | background-color: $color 24 | &::-moz-progress-bar 25 | background-color: $color 26 | // Sizes 27 | &.is-small 28 | height: $size-small 29 | &.is-medium 30 | height: $size-medium 31 | &.is-large 32 | height: $size-large 33 | -------------------------------------------------------------------------------- /_sass/bulma/elements/table.sass: -------------------------------------------------------------------------------- 1 | $table: $grey-darker !default 2 | $table-background: $white !default 3 | $table-border: $grey-lighter !default 4 | 5 | $table-head: $grey !default 6 | 7 | $table-row-hover-background: $white-bis !default 8 | 9 | $table-row-active-background: $primary !default 10 | $table-row-active: $primary-invert !default 11 | 12 | $table-row-even-background: $white-bis !default 13 | $table-row-even-hover-background: $white-ter !default 14 | 15 | .table 16 | background-color: $table-background 17 | color: $table 18 | margin-bottom: 1.5rem 19 | width: 100% 20 | td, 21 | th 22 | border: 1px solid $table-border 23 | border-width: 0 0 1px 24 | padding: 0.5em 0.75em 25 | vertical-align: top 26 | // Modifiers 27 | &.is-narrow 28 | white-space: nowrap 29 | width: 1% 30 | th 31 | color: $text-strong 32 | text-align: left 33 | tr 34 | &:hover 35 | background-color: $table-row-hover-background 36 | &.is-selected 37 | background-color: $table-row-active-background 38 | color: $table-row-active 39 | a, 40 | strong 41 | color: currentColor 42 | td, 43 | th 44 | border-color: $table-row-active 45 | color: currentColor 46 | thead 47 | td, 48 | th 49 | border-width: 0 0 2px 50 | color: $table-head 51 | tfoot 52 | td, 53 | th 54 | border-width: 2px 0 0 55 | color: $table-head 56 | tbody 57 | tr 58 | &:last-child 59 | td, 60 | th 61 | border-bottom-width: 0 62 | // Modifiers 63 | &.is-bordered 64 | td, 65 | th 66 | border-width: 1px 67 | tr 68 | &:last-child 69 | td, 70 | th 71 | border-bottom-width: 1px 72 | &.is-narrow 73 | td, 74 | th 75 | padding: 0.25em 0.5em 76 | &.is-striped 77 | tbody 78 | tr:not(.is-selected) 79 | &:nth-child(even) 80 | background-color: $table-row-even-background 81 | &:hover 82 | background-color: $table-row-even-hover-background 83 | -------------------------------------------------------------------------------- /_sass/bulma/elements/tag.sass: -------------------------------------------------------------------------------- 1 | .tag 2 | align-items: center 3 | background-color: $background 4 | border-radius: 290486px 5 | color: $text 6 | display: inline-flex 7 | font-size: $size-small 8 | height: 2em 9 | justify-content: center 10 | line-height: 1.5 11 | padding-left: 0.875em 12 | padding-right: 0.875em 13 | white-space: nowrap 14 | .delete 15 | margin-left: 0.25em 16 | margin-right: -0.375em 17 | // Colors 18 | @each $name, $pair in $colors 19 | $color: nth($pair, 1) 20 | $color-invert: nth($pair, 2) 21 | &.is-#{$name} 22 | background-color: $color 23 | color: $color-invert 24 | // Sizes 25 | &.is-medium 26 | font-size: $size-normal 27 | &.is-large 28 | font-size: $size-medium 29 | -------------------------------------------------------------------------------- /_sass/bulma/elements/title.sass: -------------------------------------------------------------------------------- 1 | $title: $grey-darker !default 2 | $title-size: $size-3 !default 3 | $title-weight: $weight-light !default 4 | $title-weight-bold: $weight-semibold !default 5 | 6 | $subtitle: $grey-dark !default 7 | $subtitle-size: $size-5 !default 8 | $subtitle-strong: $grey-darker !default 9 | $subtitle-weight: $weight-light !default 10 | 11 | .title, 12 | .subtitle 13 | +block 14 | word-break: break-word 15 | em, 16 | span 17 | font-weight: $title-weight 18 | strong 19 | font-weight: $title-weight-bold 20 | .tag 21 | vertical-align: middle 22 | 23 | .title 24 | color: $title 25 | font-size: $title-size 26 | font-weight: $title-weight 27 | line-height: 1.125 28 | strong 29 | color: inherit 30 | & + .highlight 31 | margin-top: -0.75rem 32 | &:not(.is-spaced) + .subtitle 33 | margin-top: -1.5rem 34 | // Sizes 35 | @each $size in $sizes 36 | $i: index($sizes, $size) 37 | &.is-#{$i} 38 | font-size: $size 39 | 40 | .subtitle 41 | color: $subtitle 42 | font-size: $subtitle-size 43 | font-weight: $subtitle-weight 44 | line-height: 1.25 45 | strong 46 | color: $subtitle-strong 47 | &:not(.is-spaced) + .title 48 | margin-top: -1.5rem 49 | // Sizes 50 | @each $size in $sizes 51 | $i: index($sizes, $size) 52 | &.is-#{$i} 53 | font-size: $size 54 | -------------------------------------------------------------------------------- /_sass/bulma/grid/_all.sass: -------------------------------------------------------------------------------- 1 | @charset "utf-8" 2 | 3 | @import "columns.sass" 4 | @import "tiles.sass" 5 | -------------------------------------------------------------------------------- /_sass/bulma/grid/tiles.sass: -------------------------------------------------------------------------------- 1 | .tile 2 | align-items: stretch 3 | display: block 4 | flex-basis: 0 5 | flex-grow: 1 6 | flex-shrink: 1 7 | min-height: min-content 8 | // Modifiers 9 | &.is-ancestor 10 | margin-left: -0.75rem 11 | margin-right: -0.75rem 12 | margin-top: -0.75rem 13 | &:last-child 14 | margin-bottom: -0.75rem 15 | &:not(:last-child) 16 | margin-bottom: 0.75rem 17 | &.is-child 18 | margin: 0 !important 19 | &.is-parent 20 | padding: 0.75rem 21 | &.is-vertical 22 | flex-direction: column 23 | & > .tile.is-child:not(:last-child) 24 | margin-bottom: 1.5rem !important 25 | // Responsiveness 26 | +tablet 27 | &:not(.is-child) 28 | display: flex 29 | @for $i from 1 through 12 30 | &.is-#{$i} 31 | flex: none 32 | width: ($i / 12) * 100% 33 | -------------------------------------------------------------------------------- /_sass/bulma/layout/_all.sass: -------------------------------------------------------------------------------- 1 | @charset "utf-8" 2 | 3 | @import "hero.sass" 4 | @import "section.sass" 5 | @import "footer.sass" 6 | -------------------------------------------------------------------------------- /_sass/bulma/layout/footer.sass: -------------------------------------------------------------------------------- 1 | .footer 2 | background-color: $background 3 | padding: 3rem 1.5rem 6rem 4 | -------------------------------------------------------------------------------- /_sass/bulma/layout/section.sass: -------------------------------------------------------------------------------- 1 | .section 2 | background-color: $white 3 | padding: 3rem 1.5rem 4 | // Responsiveness 5 | +desktop 6 | // Sizes 7 | &.is-medium 8 | padding: 9rem 1.5rem 9 | &.is-large 10 | padding: 18rem 1.5rem 11 | -------------------------------------------------------------------------------- /_sass/bulma/utilities/_all.sass: -------------------------------------------------------------------------------- 1 | @charset "utf-8" 2 | 3 | @import "initial-variables.sass" 4 | @import "functions.sass" 5 | @import "derived-variables.sass" 6 | @import "animations.sass" 7 | @import "mixins.sass" 8 | @import "controls.sass" 9 | -------------------------------------------------------------------------------- /_sass/bulma/utilities/animations.sass: -------------------------------------------------------------------------------- 1 | @keyframes spinAround 2 | from 3 | transform: rotate(0deg) 4 | to 5 | transform: rotate(359deg) 6 | -------------------------------------------------------------------------------- /_sass/bulma/utilities/controls.sass: -------------------------------------------------------------------------------- 1 | $control-radius: $radius !default 2 | $control-radius-small: $radius-small !default 3 | 4 | $control-padding-vertical: calc(0.375em - 1px) !default 5 | $control-padding-horizontal: calc(0.625em - 1px) !default 6 | 7 | =control 8 | -moz-appearance: none 9 | -webkit-appearance: none 10 | align-items: center 11 | border: 1px solid transparent 12 | border-radius: $control-radius 13 | box-shadow: none 14 | display: inline-flex 15 | font-size: $size-normal 16 | height: 2.25em 17 | justify-content: flex-start 18 | line-height: 1.5 19 | padding-bottom: $control-padding-vertical 20 | padding-left: $control-padding-horizontal 21 | padding-right: $control-padding-horizontal 22 | padding-top: $control-padding-vertical 23 | position: relative 24 | vertical-align: top 25 | // States 26 | &:focus, 27 | &.is-focused, 28 | &:active, 29 | &.is-active 30 | outline: none 31 | &[disabled] 32 | cursor: not-allowed 33 | 34 | // The controls sizes use mixins so they can be used at different breakpoints 35 | =control-small 36 | border-radius: $control-radius-small 37 | font-size: $size-small 38 | =control-medium 39 | font-size: $size-medium 40 | =control-large 41 | font-size: $size-large 42 | -------------------------------------------------------------------------------- /_sass/bulma/utilities/derived-variables.sass: -------------------------------------------------------------------------------- 1 | $primary: $turquoise !default 2 | 3 | $info: $blue !default 4 | $success: $green !default 5 | $warning: $yellow !default 6 | $danger: $red !default 7 | 8 | $light: $white-ter !default 9 | $dark: $grey-darker !default 10 | 11 | // Invert colors 12 | 13 | $orange-invert: findColorInvert($orange) !default 14 | $yellow-invert: findColorInvert($yellow) !default 15 | $green-invert: findColorInvert($green) !default 16 | $turquoise-invert: findColorInvert($turquoise) !default 17 | $blue-invert: findColorInvert($blue) !default 18 | $purple-invert: findColorInvert($purple) !default 19 | $red-invert: findColorInvert($red) !default 20 | 21 | $primary-invert: $turquoise-invert !default 22 | $info-invert: $blue-invert !default 23 | $success-invert: $green-invert !default 24 | $warning-invert: $yellow-invert !default 25 | $danger-invert: $red-invert !default 26 | $light-invert: $dark !default 27 | $dark-invert: $light !default 28 | 29 | // General colors 30 | 31 | $background: $white-ter !default 32 | 33 | $border: $grey-lighter !default 34 | $border-hover: $grey-light !default 35 | 36 | // Text colors 37 | 38 | $text: $grey-dark !default 39 | $text-invert: findColorInvert($text) !default 40 | $text-light: $grey !default 41 | $text-strong: $grey-darker !default 42 | 43 | // Code colors 44 | 45 | $code: $red !default 46 | $code-background: $background !default 47 | 48 | $pre: $text !default 49 | $pre-background: $background !default 50 | 51 | // Link colors 52 | 53 | $link: $primary !default 54 | $link-invert: $primary-invert !default 55 | $link-visited: $purple !default 56 | 57 | $link-hover: $grey-darker !default 58 | $link-hover-border: $grey-light !default 59 | 60 | $link-focus: $grey-darker !default 61 | $link-focus-border: $primary !default 62 | 63 | $link-active: $grey-darker !default 64 | $link-active-border: $grey-dark !default 65 | 66 | // Typography 67 | 68 | $family-primary: $family-sans-serif !default 69 | $family-code: $family-monospace !default 70 | 71 | $size-small: $size-7 !default 72 | $size-normal: $size-6 !default 73 | $size-medium: $size-5 !default 74 | $size-large: $size-4 !default 75 | 76 | // Lists and maps 77 | 78 | $colors: ("white": ($white, $black), "black": ($black, $white), "light": ($light, $light-invert), "dark": ($dark, $dark-invert), "primary": ($primary, $primary-invert), "info": ($info, $info-invert), "success": ($success, $success-invert), "warning": ($warning, $warning-invert), "danger": ($danger, $danger-invert)) !default 79 | 80 | $sizes: $size-1 $size-2 $size-3 $size-4 $size-5 $size-6 !default 81 | -------------------------------------------------------------------------------- /_sass/bulma/utilities/functions.sass: -------------------------------------------------------------------------------- 1 | @function powerNumber($number, $exp) 2 | $value: 1 3 | @if $exp > 0 4 | @for $i from 1 through $exp 5 | $value: $value * $number 6 | @else if $exp < 0 7 | @for $i from 1 through -$exp 8 | $value: $value / $number 9 | @return $value 10 | 11 | @function colorLuminance($color) 12 | $color-rgb: ('red': red($color),'green': green($color),'blue': blue($color)) 13 | @each $name, $value in $color-rgb 14 | $adjusted: 0 15 | $value: $value / 255 16 | @if $value < 0.03928 17 | $value: $value / 12.92 18 | @else 19 | $value: ($value + .055) / 1.055 20 | $value: powerNumber($value, 2) 21 | $color-rgb: map-merge($color-rgb, ($name: $value)) 22 | @return (map-get($color-rgb, 'red') * .2126) + (map-get($color-rgb, 'green') * .7152) + (map-get($color-rgb, 'blue') * .0722) 23 | 24 | @function findColorInvert($color) 25 | @if (colorLuminance($color) > 0.55) 26 | @return rgba(#000, 0.7) 27 | @else 28 | @return #fff 29 | -------------------------------------------------------------------------------- /_sass/bulma/utilities/initial-variables.sass: -------------------------------------------------------------------------------- 1 | // Colors 2 | 3 | $black: hsl(0, 0%, 4%) !default 4 | $black-bis: hsl(0, 0%, 7%) !default 5 | $black-ter: hsl(0, 0%, 14%) !default 6 | 7 | $grey-darker: hsl(0, 0%, 21%) !default 8 | $grey-dark: hsl(0, 0%, 29%) !default 9 | $grey: hsl(0, 0%, 48%) !default 10 | $grey-light: hsl(0, 0%, 71%) !default 11 | $grey-lighter: hsl(0, 0%, 86%) !default 12 | 13 | $white-ter: hsl(0, 0%, 96%) !default 14 | $white-bis: hsl(0, 0%, 98%) !default 15 | $white: hsl(0, 0%, 100%) !default 16 | 17 | $orange: hsl(14, 100%, 53%) !default 18 | $yellow: hsl(48, 100%, 67%) !default 19 | $green: hsl(141, 71%, 48%) !default 20 | $turquoise: hsl(171, 100%, 41%) !default 21 | $blue: hsl(217, 71%, 53%) !default 22 | $purple: hsl(271, 100%, 71%) !default 23 | $red: hsl(348, 100%, 61%) !default 24 | 25 | // Typography 26 | 27 | $family-sans-serif: BlinkMacSystemFont, -apple-system, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", "Helvetica", "Arial", sans-serif !default 28 | $family-monospace: monospace !default 29 | $render-mode: optimizeLegibility !default 30 | 31 | $size-1: 3rem !default 32 | $size-2: 2.5rem !default 33 | $size-3: 2rem !default 34 | $size-4: 1.5rem !default 35 | $size-5: 1.25rem !default 36 | $size-6: 1rem !default 37 | $size-7: 0.75rem !default 38 | 39 | $weight-light: 300 !default 40 | $weight-normal: 400 !default 41 | $weight-semibold: 500 !default 42 | $weight-bold: 700 !default 43 | 44 | // Body 45 | 46 | $body-background: #fff !default 47 | $body-size: 16px !default 48 | 49 | // Responsiveness 50 | 51 | // 960, 1152, and 1344 have been chosen because they are divisible by both 12 and 16 52 | $tablet: 769px !default 53 | // 960px container + 40px 54 | $desktop: 1000px !default 55 | // 1152px container + 40 56 | $widescreen: 1192px !default 57 | // 1344px container + 40 58 | $fullhd: 1384px !default 59 | 60 | // Miscellaneous 61 | 62 | $easing: ease-out !default 63 | $radius-small: 2px !default 64 | $radius: 3px !default 65 | $radius-large: 5px !default 66 | $speed: 86ms !default 67 | -------------------------------------------------------------------------------- /_sass/bulma_material_variables.scss: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////// 2 | // MATERIA 3 | //////////////////////////////////////////////// 4 | $orange: #FF9800; 5 | $yellow: #FFEB3B; 6 | $green: #4CAF50; 7 | $turquoise: #009688; 8 | $blue: #03A9F4; 9 | $purple: #9C27B0; 10 | $red: #F44336; 11 | $primary: #2196F3 !default; 12 | 13 | $link-hover: darken($primary, 10); 14 | $button-hover: #363636; 15 | 16 | $family-sans-serif: "Roboto", "Helvetica Neue", "Helvetica", "Arial", sans-serif; 17 | $title-weight: 400; 18 | $title-weight-bold: 500; 19 | 20 | $radius: 0; 21 | $shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12); 22 | $shadow-large: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12); 23 | 24 | $button-border: transparent; 25 | $button-hover-border: transparent; 26 | $button-focus-border: transparent; 27 | $button-active-border: transparent; 28 | 29 | $input-disabled-background: transparent; 30 | 31 | $border-width: 2px; 32 | -------------------------------------------------------------------------------- /_sass/navbar_dropdown.scss: -------------------------------------------------------------------------------- 1 | .nav-toggle-state { 2 | display: none; 3 | } 4 | 5 | .nav-toggle-state:checked ~ .nav-menu { 6 | display: block; 7 | } 8 | 9 | .nav-toggle { 10 | margin-left: 2rem; 11 | margin-right: 1rem; 12 | } 13 | -------------------------------------------------------------------------------- /_sass/photo-album.scss: -------------------------------------------------------------------------------- 1 | .carousel-wrapper { 2 | padding: 10px 3 | } 4 | -------------------------------------------------------------------------------- /_sass/proposal_card.scss: -------------------------------------------------------------------------------- 1 | .proposals { 2 | display: flex; 3 | flex-wrap: nowrap; 4 | overflow: auto; 5 | -webkit-overflow-scrolling: touch; 6 | -ms-overflow-style: -ms-autohiding-scrollbar; 7 | } 8 | 9 | .proposal-card { 10 | flex: 0 0 auto; 11 | vertical-align: top; 12 | box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12); 13 | border-radius: 5px; 14 | padding: 0; 15 | background-color: #fff; 16 | width: 290px; 17 | height: 400px; 18 | margin: 30px 10px; 19 | position: relative; 20 | overflow: hidden; 21 | cursor: pointer; 22 | } 23 | 24 | @media (min-width: 768px) { 25 | .proposal-card { 26 | width: 420px; 27 | height: 380px; 28 | margin: 30px 15px; 29 | } 30 | } 31 | 32 | .proposal-card :focus, 33 | .proposal-card :active { 34 | outline: none; 35 | } 36 | 37 | .talk .title { 38 | font-weight: bold; 39 | font-size: 18px; 40 | min-height: 50px; 41 | max-height: 75px; /* fit text in one line */ 42 | margin: 0 0 10px; 43 | padding: 15px 15px 0; 44 | line-height: 1.2; 45 | } 46 | 47 | @media (min-width: 768px) { 48 | .talk .title { 49 | max-height: 55px; /* fit text in one line */ 50 | } 51 | } 52 | 53 | .talk .separator { 54 | border-width: 3px; 55 | border-color: #F0DAAB; 56 | margin: 0; 57 | } 58 | 59 | .talk .description { 60 | max-height: 270px; 61 | overflow: hidden; 62 | padding: 15px 15px 0; 63 | } 64 | 65 | .description:after { 66 | content: ""; 67 | width: 100%; 68 | height: 52px; 69 | position: absolute; 70 | left: 0; 71 | bottom: 52px; 72 | z-index: 4; 73 | background: linear-gradient(to bottom, rgba(255,255,255,0) 0%, #fff 70%, #fff 100%); 74 | } 75 | 76 | @media (min-width: 768px) { 77 | .talk .description { 78 | max-height: 250px; 79 | } 80 | } 81 | 82 | .proposal-card .description p, 83 | .proposal-card .description ul, 84 | .proposal-card .description ol, 85 | .proposal-card .description pre { 86 | background: transparent; 87 | border: 0; 88 | font-family: inherit; 89 | margin: 0; 90 | padding: 0; 91 | } 92 | 93 | .proposal-card .description img { 94 | width: 100%; 95 | } 96 | 97 | .proposal-card .description ul, 98 | .proposal-card .description ol { 99 | margin: 0; 100 | padding: 0 0 0 20px; 101 | } 102 | 103 | .talk .fullname { 104 | background-color: $primary; 105 | color: #fff; 106 | margin: 0; 107 | padding: 15px; 108 | text-align: right; 109 | line-height: 1.2; 110 | position: absolute; 111 | bottom: 0; 112 | width: 100%; 113 | } 114 | 115 | .modal-card-title { 116 | width: 99%; 117 | } 118 | -------------------------------------------------------------------------------- /api/all.json: -------------------------------------------------------------------------------- 1 | --- 2 | --- 3 | {%- assign conferences = site.data.conferences | sort: 'start_time' -%} 4 | {%- assign events = site.data.events | sort: 'start_time' -%} 5 | {%- assign cities = site.data.cities -%} 6 | 7 | {%- capture now_date -%}{{ site.time | date: '%s' | plus: 0 }}{%- endcapture -%} 8 | 9 | { 10 | "conferences": [ 11 | {%- for conf in conferences -%} 12 | {%- capture conf_end_date -%}{{conf.end_time | date: '%s' | plus: 0 }}{%- endcapture -%} 13 | {%- if conf_end_date > now_date -%} 14 | { 15 | "id": "{{ conf.name }}", 16 | "title": "{{ conf.title }}", 17 | "start_time": "{{ conf.start_time | date_to_xmlschema }}", 18 | "city": "{{ conf.city }}", 19 | "venue": "{{ conf.venue }}", 20 | "google_maps_link": "{{ conf.google_maps_link }}", 21 | "end_time": "{{ conf.end_time | date_to_xmlschema }}", 22 | "url": "{{ conf.url }}", 23 | "funnel": "{{ conf.funnel }}", 24 | "blurb": "{{ conf.blurb | smartify }}", 25 | "banner": "{{ conf.banner }}" 26 | {% if conf.color %}, "color": {{conf.color|jsonify}} {% endif %} 27 | }{% if forloop.last == false %},{% endif %} 28 | {%- endif -%} 29 | {%- endfor -%} 30 | ], 31 | "events": [ 32 | {%- for event in events -%} 33 | {%- capture event_end_date -%}{{event.end_time | date: '%s' | plus: 0 }}{%- endcapture -%} 34 | {%- if event_end_date > now_date -%} 35 | { 36 | "name": "{{ event.name }}", 37 | "title": "{{ event.title }}", 38 | "start_time": "{{ event.start_time | date_to_xmlschema }}", 39 | "city": "{{ event.city }}", 40 | "venue": "{{ event.venue }}", 41 | "google_maps_link": "{{ event.google_maps_link }}", 42 | "end_time": "{{ event.end_time | date_to_xmlschema }}", 43 | "url": "{{ event.url }}", 44 | "funnel": "{{ event.funnel }}", 45 | "blurb": "{{ event.blurb | smartify }}" 46 | } 47 | {%- if forloop.last == false -%},{%- endif -%} 48 | {%- endif -%} 49 | {%- endfor -%} 50 | ], 51 | "cities": [ 52 | {%- for city in cities -%} 53 | "{{ city }}" 54 | {%- if forloop.last == false -%},{%- endif -%} 55 | {%- endfor -%} 56 | ] 57 | } 58 | -------------------------------------------------------------------------------- /api/cities.json: -------------------------------------------------------------------------------- 1 | --- 2 | --- 3 | {% assign cities = site.data.cities %} 4 | { 5 | "cities": [ 6 | {% for city in cities %} 7 | "{{ city }}" 8 | {% if forloop.last == false %},{% endif %} 9 | {% endfor %} 10 | ] 11 | } -------------------------------------------------------------------------------- /api/conferences.json: -------------------------------------------------------------------------------- 1 | --- 2 | --- 3 | {%- assign conferences = site.data.conferences | sort: 'start_time' -%} 4 | {%- capture now_date -%}{{ site.time | date: '%s' | plus: 0 }}{%- endcapture -%} 5 | 6 | { 7 | "conferences": [ 8 | {%- for conf in conferences -%} 9 | {%- capture conf_end_date -%}{{conf.end_time | date: '%s' | plus: 0 }}{%- endcapture -%} 10 | {%- if conf_end_date > now_date -%} 11 | { 12 | "id": "{{ conf.name }}", 13 | "title": "{{ conf.title }}", 14 | "start_time": "{{ conf.start_time | date_to_xmlschema }}", 15 | "city": "{{ conf.city }}", 16 | "venue": "{{ conf.venue }}", 17 | "google_maps_link": "{{ conf.google_maps_link }}", 18 | "end_time": "{{ conf.end_time | date_to_xmlschema }}", 19 | "url": "{{ conf.url }}", 20 | "funnel": "{{ conf.funnel }}", 21 | "blurb": "{{ conf.blurb }}", 22 | "banner": "{{ conf.banner }}" 23 | {%- if conf.color -%}, "color": {{conf.color|jsonify}} {%- endif -%} 24 | } 25 | {% if forloop.last == false %},{% endif %} 26 | {%- endif -%} 27 | {%- endfor -%} 28 | ] 29 | } 30 | -------------------------------------------------------------------------------- /api/events.json: -------------------------------------------------------------------------------- 1 | --- 2 | --- 3 | {%- assign events = site.data.events | sort: 'start_time' -%} 4 | {%- capture now_date -%}{{ site.time | date: '%s' | plus: 0 }}{%- endcapture -%} 5 | 6 | { 7 | "events": [ 8 | {%- for event in events -%} 9 | {%- capture event_end_date -%}{{event.end_time | date: '%s' | plus: 0 }}{%- endcapture -%} 10 | {%- if event_end_date > now_date -%} 11 | { 12 | "name": "{{ event.name }}", 13 | "title": "{{ event.title }}", 14 | "start_time": "{{ event.start_time | date_to_xmlschema }}", 15 | "city": "{{ event.city }}", 16 | "venue": "{{ event.venue }}", 17 | "google_maps_link": "{{ event.google_maps_link }}", 18 | "end_time": "{{ event.end_time | date_to_xmlschema }}", 19 | "url": "{{ event.url }}", 20 | "funnel": "{{ event.funnel }}", 21 | "blurb": "{{ event.blurb | smartify }}" 22 | } 23 | {% if forloop.last == false %},{% endif %} 24 | {%- endif -%} 25 | {%- endfor -%} 26 | ] 27 | } 28 | -------------------------------------------------------------------------------- /configs/50p_config.yml: -------------------------------------------------------------------------------- 1 | title: 50p 2 | subtitle: "A community and conference on India's payment ecosystem" 3 | description: "A community and conference on India's payment ecosystem" 4 | baseurl: "" # the subpath of your site, e.g. /blog 5 | url: "https://50p.in" # the base hostname & protocol for your site, e.g. http://example.com 6 | id: 50p 7 | colors: 8 | primary: "#434556" 9 | accent: "#ECC378" 10 | ga_tracking_code: UA-19123154-34 11 | twitter_tracking_code: nzdrl 12 | fb_tracking_code: 939847969521385 13 | linkedin_tracking_code: 245595 14 | # Build settings 15 | markdown: kramdown 16 | plugins: 17 | - jekyll-feed 18 | - jekyll-sitemap 19 | exclude: 20 | - Gemfile 21 | - Gemfile.lock 22 | - Rakefile 23 | - .git 24 | - .sass_cache 25 | - node_modules 26 | - _site 27 | - tests 28 | - vendor 29 | - .DS_Store 30 | - configs 31 | - deploy 32 | - requirements.txt 33 | - README.md 34 | 35 | destination: _site/50p 36 | 37 | sass_dir: _sass 38 | 39 | liquid: 40 | error_mode: strict 41 | 42 | feednami_api_key: 655dac92aea8a093f9ce3220844f63ce2f62de384b97d470b30edb7162f6d7fc 43 | 44 | collections: 45 | 50p_events: 46 | type: event 47 | output: true 48 | permalink: /:path/ 49 | -------------------------------------------------------------------------------- /configs/anthillinside_config.yml: -------------------------------------------------------------------------------- 1 | title: Anthill Inside 2 | subtitle: "Community powered conferences, workshops, and meet ups on AI and data" 3 | description: "India's community of deep learning and artificial intelligence practitioners" 4 | logo: 5 | image_url: https://images.hasgeek.com/embed/file/388138390f464e279d5429669293c040 6 | baseurl: "" # the subpath of your site, e.g. /blog 7 | url: "https://anthillinside.in" # the base hostname & protocol for your site, e.g. http://example.com 8 | colors: 9 | primary: "#3f50a3" 10 | accent: "#e76f45" 11 | ga_tracking_code: UA-19123154-36 12 | twitter_tracking_code: nzdrl 13 | fb_tracking_code: 939847969521385 14 | linkedin_tracking_code: 245595 15 | icons: 16 | touch: 17 | - src: "images/touch/anthillinside-icon-192.png" 18 | sizes: "192x192" 19 | type: "image/png" 20 | id: anthillinside 21 | # Build settings 22 | markdown: kramdown 23 | plugins: 24 | - jekyll-feed 25 | - jekyll-sitemap 26 | exclude: 27 | - Gemfile 28 | - Gemfile.lock 29 | - Rakefile 30 | - .git 31 | - .sass_cache 32 | - node_modules 33 | - _site 34 | - tests 35 | - vendor 36 | - .DS_Store 37 | - configs 38 | - deploy 39 | - requirements.txt 40 | - README.md 41 | 42 | destination: _site/anthillinside 43 | 44 | sass_dir: _sass 45 | 46 | liquid: 47 | error_mode: strict 48 | 49 | collections: 50 | anthillinside_events: 51 | type: event 52 | output: true 53 | permalink: /:path/ 54 | -------------------------------------------------------------------------------- /configs/fifthelephant_config.yml: -------------------------------------------------------------------------------- 1 | title: The Fifth Elephant 2 | subtitle: "Community powered conferences, workshops, and meet ups on data and AI" 3 | description: "India’s most renowned data science conference. Discuss the most cutting edge developments in the fields of machine learning, data science and technology that power data collection and analysis." 4 | logo: 5 | image_url: https://images.hasgeek.com/embed/file/71893a055f3f4f77961b2c7360bf0f48 6 | baseurl: "" # the subpath of your site, e.g. /blog 7 | url: "https://fifthelephant.in" # the base hostname & protocol for your site, e.g. http://example.com 8 | colors: 9 | primary: "#498f94" 10 | accent: "#EC6015" 11 | ga_tracking_code: UA-19123154-20 12 | twitter_tracking_code: o0bfl 13 | fb_tracking_code: 939847969521385 14 | linkedin_tracking_code: 245595 15 | icons: 16 | touch: 17 | - src: "images/touch/fifthelephant-icon-192.png" 18 | sizes: "192x192" 19 | type: "image/png" 20 | id: fifthelephant 21 | # Build settings 22 | markdown: kramdown 23 | plugins: 24 | - jekyll-feed 25 | - jekyll-sitemap 26 | exclude: 27 | - Gemfile 28 | - Gemfile.lock 29 | - Rakefile 30 | - .git 31 | - .sass_cache 32 | - node_modules 33 | - _site 34 | - tests 35 | - vendor 36 | - .DS_Store 37 | - configs 38 | - deploy 39 | - requirements.txt 40 | - README.md 41 | 42 | destination: _site/fifthelephant 43 | 44 | sass_dir: _sass 45 | 46 | liquid: 47 | error_mode: strict 48 | 49 | feednami_api_key: 32374997f4d7bf157e23aeb321f3beed6c8b93ccd4f68e4ab3e243e12fae640e 50 | 51 | collections: 52 | fifthelephant_events: 53 | type: event 54 | output: true 55 | permalink: /:path/ 56 | -------------------------------------------------------------------------------- /configs/fragments_config.yml: -------------------------------------------------------------------------------- 1 | title: Fragments 2 | subtitle: "India's community of Android, iOS, and mobile web developers
(formerly called droidconIN)" 3 | description: "India's community of Android, iOS, and mobile web developers" 4 | baseurl: "" # the subpath of your site, e.g. /blog 5 | url: "https://fragments.in" # the base hostname & protocol for your site, e.g. http://example.com 6 | colors: 7 | primary: "#1BAF82" 8 | accent: "#99CB54" 9 | meta: 10 | image: "images/meta/fragments.png" 11 | id: fragments 12 | ga_tracking_code: UA-19123154-37 13 | twitter_tracking_code: nzdrl 14 | fb_tracking_code: 939847969521385 15 | linkedin_tracking_code: 245595 16 | service_worker: true 17 | id: fragments 18 | # Build settings 19 | markdown: kramdown 20 | plugins: 21 | - jekyll-feed 22 | - jekyll-sitemap 23 | exclude: 24 | - Gemfile 25 | - Gemfile.lock 26 | - Rakefile 27 | - .git 28 | - .sass_cache 29 | - node_modules 30 | - _site 31 | - tests 32 | - vendor 33 | - .DS_Store 34 | - configs 35 | - deploy 36 | - requirements.txt 37 | - README.md 38 | 39 | destination: _site/fragments 40 | 41 | sass_dir: _sass 42 | 43 | liquid: 44 | error_mode: strict 45 | 46 | collections: 47 | fragments_events: 48 | type: event 49 | output: true 50 | permalink: /:path/ 51 | -------------------------------------------------------------------------------- /configs/jsfoo_config.yml: -------------------------------------------------------------------------------- 1 | title: JSFoo + Meta Refresh 2 | subtitle: "A community and conference on JavaScript" 3 | description: "A community and conference on JavaScript" 4 | baseurl: "" # the subpath of your site, e.g. /blog 5 | url: "https://jsfoo.in" # the base hostname & protocol for your site, e.g. http://example.com 6 | colors: 7 | primary: "#549EAF" 8 | accent: "#FAA51A" 9 | ga_tracking_code: UA-19123154-15 10 | twitter_tracking_code: o09dx 11 | fb_tracking_code: 939847969521385 12 | linkedin_tracking_code: 245595 13 | icons: 14 | touch: 15 | - src: "images/touch/jsfoo-icon-300.png" 16 | sizes: "300x300" 17 | type: "image/png" 18 | id: jsfoo 19 | # Build settings 20 | markdown: kramdown 21 | plugins: 22 | - jekyll-feed 23 | - jekyll-sitemap 24 | exclude: 25 | - Gemfile 26 | - Gemfile.lock 27 | - Rakefile 28 | - .git 29 | - .sass_cache 30 | - node_modules 31 | - _site 32 | - tests 33 | - vendor 34 | - .DS_Store 35 | - configs 36 | - deploy 37 | - requirements.txt 38 | - README.md 39 | 40 | destination: _site/jsfoo 41 | 42 | sass_dir: _sass 43 | 44 | liquid: 45 | error_mode: strict 46 | 47 | feednami_api_key: 11b960d3a621040da933072084fa65905899a9a7a62654c5a13e5ac0b65cca68 48 | 49 | collections: 50 | jsfoo_events: 51 | type: event 52 | output: true 53 | permalink: /:path/ 54 | metarefresh_events: 55 | type: event 56 | output: true 57 | permalink: /metarefresh/:path/ 58 | 59 | -------------------------------------------------------------------------------- /configs/metarefresh_config.yml: -------------------------------------------------------------------------------- 1 | title: Meta Refresh + JSFoo 2 | subtitle: "A community and conference on the construction of user experience on the web" 3 | description: "A community and conference on the construction of user experience on the web." 4 | baseurl: "" # the subpath of your site, e.g. /blog 5 | url: "https://metarefresh.in" # the base hostname & protocol for your site, e.g. http://example.com 6 | colors: 7 | primary: "#b22e40" 8 | accent: "#921b3f" 9 | ga_tracking_code: UA-19123154-19 10 | twitter_tracking_code: o09nd 11 | fb_tracking_code: 939847969521385 12 | linkedin_tracking_code: 245595 13 | icons: 14 | touch: 15 | - src: "images/touch/metarefresh-icon-192.png" 16 | sizes: "192x192" 17 | type: "image/png" 18 | id: metarefresh 19 | # Build settings 20 | markdown: kramdown 21 | plugins: 22 | - jekyll-feed 23 | - jekyll-sitemap 24 | exclude: 25 | - Gemfile 26 | - Gemfile.lock 27 | - Rakefile 28 | - .git 29 | - .sass_cache 30 | - node_modules 31 | - _site 32 | - tests 33 | - vendor 34 | - .DS_Store 35 | - configs 36 | - deploy 37 | - requirements.txt 38 | - README.md 39 | 40 | destination: _site/metarefresh 41 | 42 | sass_dir: _sass 43 | 44 | liquid: 45 | error_mode: strict 46 | 47 | collections: 48 | metarefresh_events: 49 | type: event 50 | output: true 51 | permalink: /:path/ 52 | jsfoo_events: 53 | type: event 54 | output: true 55 | permalink: /jsfoo/:path/ 56 | -------------------------------------------------------------------------------- /configs/reactfoo_config.yml: -------------------------------------------------------------------------------- 1 | title: ReactFoo 2 | subtitle: "India's community of React.js and React Native developers" 3 | description: "India's community of React.js and React Native developers" 4 | baseurl: "" # the subpath of your site, e.g. /blog 5 | url: "https://reactfoo.in" # the base hostname & protocol for your site, e.g. http://example.com 6 | id: reactfoo 7 | colors: 8 | primary: "#549EAF" 9 | accent: "#FAA51A" 10 | ga_tracking_code: UA-19123154-39 11 | twitter_tracking_code: nzdrl 12 | fb_tracking_code: 939847969521385 13 | linkedin_tracking_code: 245595 14 | # Build settings 15 | markdown: kramdown 16 | plugins: 17 | - jekyll-feed 18 | - jekyll-sitemap 19 | exclude: 20 | - Gemfile 21 | - Gemfile.lock 22 | - Rakefile 23 | - .git 24 | - .sass_cache 25 | - node_modules 26 | - _site 27 | - tests 28 | - vendor 29 | - .DS_Store 30 | - configs 31 | - deploy 32 | - requirements.txt 33 | - README.md 34 | 35 | destination: _site/reactfoo 36 | 37 | sass_dir: _sass 38 | 39 | liquid: 40 | error_mode: strict 41 | 42 | feednami_api_key: 2c77b4225145c3d4f7c1332b8a6e50e0466587bc56808ad000c8d26fbb765d56 43 | 44 | collections: 45 | reactfoo_events: 46 | type: event 47 | output: true 48 | permalink: /:path/ 49 | -------------------------------------------------------------------------------- /configs/rootconf_config.yml: -------------------------------------------------------------------------------- 1 | title: Rootconf 2 | subtitle: "A community and conference on DevOps and cloud infrastructure" 3 | description: "A community and conference on DevOps and cloud infrastructure" 4 | baseurl: "" # the subpath of your site, e.g. /blog 5 | url: "https://rootconf.in" # the base hostname & protocol for your site, e.g. http://example.com 6 | id: rootconf 7 | colors: 8 | primary: "#192967" 9 | accent: "#C85626" 10 | ga_tracking_code: UA-19123154-21 11 | twitter_tracking_code: o0bfj 12 | fb_tracking_code: 939847969521385 13 | linkedin_tracking_code: 245595 14 | # Build settings 15 | markdown: kramdown 16 | plugins: 17 | - jekyll-feed 18 | - jekyll-sitemap 19 | exclude: 20 | - Gemfile 21 | - Gemfile.lock 22 | - Rakefile 23 | - .git 24 | - .sass_cache 25 | - node_modules 26 | - _site 27 | - tests 28 | - vendor 29 | - .DS_Store 30 | - configs 31 | - deploy 32 | - requirements.txt 33 | - README.md 34 | 35 | destination: _site/rootconf 36 | 37 | sass_dir: _sass 38 | 39 | liquid: 40 | error_mode: strict 41 | 42 | collections: 43 | rootconf_events: 44 | type: event 45 | output: true 46 | permalink: /:path/ 47 | -------------------------------------------------------------------------------- /css/main.scss: -------------------------------------------------------------------------------- 1 | --- 2 | --- 3 | 4 | @import "bulma_material_variables"; 5 | 6 | {% if site.colors %} 7 | $primary: {{ site.colors.primary }}; 8 | $info: {{ site.colors.accent }}; 9 | {% else %} 10 | $primary: #826995; 11 | $info: #514F74; 12 | {% endif %} 13 | $link-hover: darken($primary, 10); 14 | $button-hover: darken($primary, 10); 15 | 16 | @import "bulma/bulma"; 17 | @import "bulma_material_overrides"; 18 | @import "navbar_dropdown"; 19 | @import "schedule"; 20 | @import "proposal_card"; 21 | @import "boxoffice"; 22 | @import "outreach"; 23 | @import "testimonial"; 24 | @import "photo-album"; 25 | -------------------------------------------------------------------------------- /deploy/deploy.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set -e 4 | 5 | openssl aes-256-cbc -K $encrypted_f874a539f83d_key -iv $encrypted_f874a539f83d_iv -in deploy/id_rsa.enc -out /tmp/deploy_rsa_$1 -d 6 | 7 | eval "$(ssh-agent -s)" 8 | 9 | chmod 600 /tmp/deploy_rsa_$1 10 | 11 | ssh-add /tmp/deploy_rsa_$1 12 | 13 | # Install ruby dependencies 14 | bundle install 15 | 16 | # Build the jekyll site 17 | bundle exec jekyll build --config configs/$1_config.yml 18 | 19 | cp deploy/gulpfile.js _site/$1 20 | cp deploy/package.json _site/$1 21 | cp .gitignore _site/$1 22 | 23 | cd _site/$1 24 | 25 | 26 | npm install --global gulp-cli 27 | npm install 28 | 29 | npm link lru-cache 30 | 31 | # gulp generate-service-worker 32 | 33 | git init 34 | 35 | git config user.name "Deployment Bot (from Travis CI)" 36 | git config user.email "deploy@travis-ci.org" 37 | 38 | git add . 39 | 40 | git commit -m "Deployment" 41 | 42 | git remote add deploy git@e2e.hasgeek.com:$1 43 | 44 | git push -u -f deploy master 45 | -------------------------------------------------------------------------------- /deploy/gulpfile.js: -------------------------------------------------------------------------------- 1 | var gulp = require('gulp'); 2 | 3 | gulp.task('generate-service-worker', function(callback) { 4 | var path = require('path'); 5 | var swPrecache = require('sw-precache'); 6 | var rootDir = '.'; 7 | 8 | swPrecache.write(path.join(rootDir, 'sw.js'), { 9 | staticFileGlobs: [rootDir + '/{css,fonts,images,js}/*.{js,css,png,jpg,gif,svg,ttf}'], 10 | runtimeCaching: [ 11 | { 12 | urlPattern: /images\.hasgeek\.com/, 13 | handler: 'cacheFirst' 14 | }, 15 | { 16 | urlPattern: /imgee\.s3\.amazonaws\.com\/imgee/, 17 | handler: 'cacheFirst' 18 | }, 19 | { 20 | urlPattern: /^https:\/\/[A-Za-z]+.tile.openstreetmap.org/, 21 | handler: 'cacheFirst' 22 | }], 23 | stripPrefix: rootDir 24 | }, callback); 25 | }); 26 | -------------------------------------------------------------------------------- /deploy/id_rsa.enc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hasgeek/events/6b81c80da15e5918e7b06cab28d590e65defa1ef/deploy/id_rsa.enc -------------------------------------------------------------------------------- /deploy/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "events", 3 | "version": "1.0.0", 4 | "description": "A conference on deep learning and artificial intelligence", 5 | "scripts": { 6 | "test": "echo \"Error: no test specified\" && exit 1" 7 | }, 8 | "repository": { 9 | "type": "git", 10 | "url": "git+https://github.com/hasgeek/events.git" 11 | }, 12 | "keywords": [ 13 | "HasGeek", 14 | "conference", 15 | "Bangalore" 16 | ], 17 | "author": "HasGeek (https://hasgeek.com)", 18 | "license": "AGPL-3.0", 19 | "bugs": { 20 | "url": "https://github.com/hasgeek/events/issues" 21 | }, 22 | "homepage": "https://github.com/hasgeek/events#readme", 23 | "dependencies": { 24 | "path": "^0.12.7", 25 | "sw-precache": "^5.1.0", 26 | "gulp": "^3.9.1" 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hasgeek/events/6b81c80da15e5918e7b06cab28d590e65defa1ef/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hasgeek/events/6b81c80da15e5918e7b06cab28d590e65defa1ef/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hasgeek/events/6b81c80da15e5918e7b06cab28d590e65defa1ef/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hasgeek/events/6b81c80da15e5918e7b06cab28d590e65defa1ef/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hasgeek/events/6b81c80da15e5918e7b06cab28d590e65defa1ef/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /images/50p-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hasgeek/events/6b81c80da15e5918e7b06cab28d590e65defa1ef/images/50p-logo.png -------------------------------------------------------------------------------- /images/extras/mlr-whitefield-venue-map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hasgeek/events/6b81c80da15e5918e7b06cab28d590e65defa1ef/images/extras/mlr-whitefield-venue-map.png -------------------------------------------------------------------------------- /images/fifthelephant-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hasgeek/events/6b81c80da15e5918e7b06cab28d590e65defa1ef/images/fifthelephant-logo.png -------------------------------------------------------------------------------- /images/fragments-logo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hasgeek/events/6b81c80da15e5918e7b06cab28d590e65defa1ef/images/fragments-logo.gif -------------------------------------------------------------------------------- /images/hg-favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hasgeek/events/6b81c80da15e5918e7b06cab28d590e65defa1ef/images/hg-favicon.ico -------------------------------------------------------------------------------- /images/jsfoo-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hasgeek/events/6b81c80da15e5918e7b06cab28d590e65defa1ef/images/jsfoo-logo.png -------------------------------------------------------------------------------- /images/meta/anthillinside.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hasgeek/events/6b81c80da15e5918e7b06cab28d590e65defa1ef/images/meta/anthillinside.png -------------------------------------------------------------------------------- /images/meta/fifthelephant.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hasgeek/events/6b81c80da15e5918e7b06cab28d590e65defa1ef/images/meta/fifthelephant.png -------------------------------------------------------------------------------- /images/meta/fragments.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hasgeek/events/6b81c80da15e5918e7b06cab28d590e65defa1ef/images/meta/fragments.png -------------------------------------------------------------------------------- /images/metarefresh-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hasgeek/events/6b81c80da15e5918e7b06cab28d590e65defa1ef/images/metarefresh-logo.png -------------------------------------------------------------------------------- /images/reactfoo-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hasgeek/events/6b81c80da15e5918e7b06cab28d590e65defa1ef/images/reactfoo-logo.png -------------------------------------------------------------------------------- /images/rootconf-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hasgeek/events/6b81c80da15e5918e7b06cab28d590e65defa1ef/images/rootconf-logo.png -------------------------------------------------------------------------------- /images/touch/anthillinside-icon-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hasgeek/events/6b81c80da15e5918e7b06cab28d590e65defa1ef/images/touch/anthillinside-icon-192.png -------------------------------------------------------------------------------- /images/touch/fifthelephant-icon-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hasgeek/events/6b81c80da15e5918e7b06cab28d590e65defa1ef/images/touch/fifthelephant-icon-192.png -------------------------------------------------------------------------------- /images/touch/jsfoo-icon-300.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hasgeek/events/6b81c80da15e5918e7b06cab28d590e65defa1ef/images/touch/jsfoo-icon-300.png -------------------------------------------------------------------------------- /images/touch/metarefresh-icon-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hasgeek/events/6b81c80da15e5918e7b06cab28d590e65defa1ef/images/touch/metarefresh-icon-192.png -------------------------------------------------------------------------------- /img/camera-icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | camera-icon 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /img/layers-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hasgeek/events/6b81c80da15e5918e7b06cab28d590e65defa1ef/img/layers-2x.png -------------------------------------------------------------------------------- /img/layers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hasgeek/events/6b81c80da15e5918e7b06cab28d590e65defa1ef/img/layers.png -------------------------------------------------------------------------------- /img/marker-icon-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hasgeek/events/6b81c80da15e5918e7b06cab28d590e65defa1ef/img/marker-icon-2x.png -------------------------------------------------------------------------------- /img/marker-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hasgeek/events/6b81c80da15e5918e7b06cab28d590e65defa1ef/img/marker-icon.png -------------------------------------------------------------------------------- /img/marker-shadow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hasgeek/events/6b81c80da15e5918e7b06cab28d590e65defa1ef/img/marker-shadow.png -------------------------------------------------------------------------------- /img/temporary-img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hasgeek/events/6b81c80da15e5918e7b06cab28d590e65defa1ef/img/temporary-img.png -------------------------------------------------------------------------------- /img/volunteer-icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | volunteer-icon 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: base 3 | --- 4 |
5 |
6 |
7 |
8 | {% if site.logo.image_url contains "://" %} 9 | {% assign logo_url = site.logo.image_url %} 10 | {% else %} 11 | {% assign logo_url = site.logo.image_url | absolute_url %} 12 | {% endif %} 13 | 14 |
15 |

16 | {{ site.title }} 17 |

18 | {% assign event_d = event.end_time | date: '%Y%m%d' | plus: 0 %} 19 | {% assign site_d = site.time | date: '%Y%m%d' | plus: 0 %} 20 | {% if site.subtitle %} 21 |

22 | {{ site.subtitle }} 23 |

24 | {% endif %} 25 |
26 |
27 |
28 | 29 | 42 | 43 |
44 |
45 | {% include assign_all_events.html %} 46 |
47 | {% for event in all_events %} 48 | {% if featured_events contains event %} 49 | {% else %} 50 |
51 | {% include event_card.html event=event featured=event.featured %} 52 |
53 | {% endif %} 54 | {% endfor %} 55 |
56 |
57 |
58 | 59 | {% include assign_past_events.html %} 60 | {% if past_events != "" %} 61 |
62 |
63 |

Past Events

64 |
65 |
66 | {% for event in past_events %} 67 |
68 | {% include event_card.html event=event featured=event.featured %} 69 |
70 | {% endfor %} 71 |
72 |
73 |
74 | {% endif %} 75 | 76 | {% include footer.html %} 77 | -------------------------------------------------------------------------------- /js/proposal.js: -------------------------------------------------------------------------------- 1 | $(document).ready( function() { 2 | var updateFontSize = function(elem) { 3 | var fontStep = 1; 4 | var parentWidth = $(elem).width(); 5 | var parentHeight = parseInt($(elem).css('max-height'), 10); 6 | var childElem = $(elem).find('span'); 7 | while ((childElem.width() > parentWidth) || (childElem.height() > parentHeight)) { 8 | childElem.css('font-size', parseInt(childElem.css('font-size'), 10) - fontStep + 'px'); 9 | } 10 | }; 11 | 12 | if(($('#funnel-proposals').length)) { 13 | $.ajax({ 14 | type: 'GET', 15 | dataType: 'jsonp', 16 | url: window.EventDetails.proposal_url, 17 | success: function(data) { 18 | $("#funnel-proposals p.loadingtxt").hide(); 19 | var proposalsTemplate = $('#proposals-wrapper').html(); 20 | $("#funnel-proposals").append(Mustache.render(proposalsTemplate, data)); 21 | $.each($('.proposal-card .title'), function(index, title) { 22 | updateFontSize(title); 23 | }); 24 | } 25 | });//eof ajax call 26 | } 27 | }); -------------------------------------------------------------------------------- /manifest.json: -------------------------------------------------------------------------------- 1 | --- 2 | --- 3 | { 4 | "name": "{{ site.title }}", 5 | "short_name": "{{ site.title }}", 6 | "display": "standalone", 7 | "orientation": "portrait", 8 | "start_url": "/?utm_source=app_homescreen", 9 | {% if site.colors %} 10 | "theme_color": "{{ site.colors.primary }}", 11 | {% else %} 12 | "theme_color": "#826995", 13 | {% endif %} 14 | "background_color": "#FAFAFA", 15 | "description": "{{ site.description }}", 16 | {% if site.icons.touch %} 17 | "icons": [ 18 | {% for icon in site.icons.touch %} 19 | {{ icon | jsonify }} 20 | {% unless forloop.last %},{% endunless %} 21 | {% endfor %} 22 | ] 23 | {% endif %} 24 | } 25 | -------------------------------------------------------------------------------- /pages/code-of-conduct.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: document 3 | permalink: /code-of-conduct/ 4 | title: The Code of Conduct Applies to Everyone 5 | --- 6 | 7 | ### This code of conduct applies across online forums, conferences and other events hosted by HasGeek 8 | 9 | We are here as a community to deliberate on the topics of the forum. Be nice to everyone. 10 | 11 | * Be empathetic. 12 | * Be questioning, as it furthers the discussion. 13 | * Discuss ideas, not people and their personalities (as that would be ad hominem). 14 | 15 | We strongly condemn any kind of harassment of any fellow participant, speaker or representative from sponsors’ organization. This includes: 16 | 17 | * Sustained disruption of talks, discussions and other events. 18 | * Offensive remarks or jokes made about women, men, persons of non-binary genders and those with physical disabilities, or on the basis of sexuality, race, caste or religion. 19 | * Use of images that objectify the human body unless absolutely relevant to the discussion. 20 | Inappropriate physical contact and invasion of private space. Deliberate intimidation, unwelcome gestures and stalking. 21 | 22 | Please report in confidence by sending an SMS to +91 7676 33 2020. SMSes are received by HasGeek staff who can address this quickly. Violators, regardless of their standing, may be expelled from the forum, without a refund (where payment was applicable), and reported to the authorities. 23 | 24 | ## License 25 | 26 | This Code of Conduct was forked from the PyCon US Code of Conduct, which in turn was forked from the Geek Feminism wiki, created by the Ada Initiative and other volunteers and available under a Creative Commons Zero license. 27 | 28 | The Conference Code of Conduct for {{ site.title }} is licensed under a Creative Commons Attribution 3.0 Unported License. 29 | -------------------------------------------------------------------------------- /pages/live.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: base 3 | permalink: /live/ 4 | --- 5 | 6 | {% include assign_all_events.html %} 7 | 8 | {% assign all_live_events = all_events | where_exp: 'event', 'event.live' %} 9 | 10 | 11 |
12 |
13 |
14 |

15 | {{ site.title }} 16 |

17 |

18 | {% assign empty_array = "" | split: "" %} 19 | {% if all_live_events != empty_array %} 20 | Can't make it to the event? Watch the live stream here. 21 | {% else %} 22 | There are no upcoming live streams 23 | {% endif %} 24 |

25 |
26 |
27 |
28 | {% for event in all_live_events %} 29 |
30 |
31 |
32 |
33 | {% for live in event.live %} 34 |
35 |

{{ event.title }}

36 |

{{ live.title }}

37 | 40 |
41 |
42 | {% endfor %} 43 |
44 |
45 |
46 |
47 | {% endfor %} 48 | {% include footer.html %} 49 | -------------------------------------------------------------------------------- /pages/mlaas.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: redirect 3 | permalink: /2017/mlaas/ 4 | redirect_to: /2017-mlaas-workshop 5 | --- 6 | -------------------------------------------------------------------------------- /pages/newsletter.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: redirect 3 | permalink: /newsletter/ 4 | redirect_external: http://eepurl.com/cygsfr 5 | --- 6 | -------------------------------------------------------------------------------- /pages/nlp-workshop.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: redirect 3 | permalink: /2017/nlp-workshop/ 4 | redirect_to: /2017-nlp-workshop 5 | --- 6 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | ruamel.yaml 2 | behave 3 | cerberus==1.1 4 | -------------------------------------------------------------------------------- /tests/after_build/steps/api.py: -------------------------------------------------------------------------------- 1 | from behave import * 2 | import yaml 3 | import datetime 4 | import urllib2 5 | import re 6 | 7 | urlregex = re.compile( 8 | r'^(?:http)s?://' # http:// or https:// 9 | r'(?:(?:[A-Z0-9](?:[A-Z0-9-]{0,61}[A-Z0-9])?\.)+(?:[A-Z]{2,6}\.?|[A-Z0-9-]{2,}\.?)|' # domain... 10 | r'localhost|' # localhost... 11 | r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}|' # ...or ipv4 12 | r'\[?[A-F0-9]*:[A-F0-9:]+\]?)' # ...or ipv6 13 | r'(?::\d+)?' # optional port 14 | r'(?:/?|[/?]\S+)$', re.IGNORECASE) 15 | 16 | colorregex = re.compile(r'^#(?:[0-9a-fA-F]{3}){1,2}$', re.IGNORECASE) 17 | 18 | @given('an event added and jekyll has built') 19 | def step_impl(context): 20 | pass 21 | 22 | @then('/api/conferences.json should be correct') 23 | def step_impl(context): 24 | pass 25 | 26 | @then('/api/events.json should be correct') 27 | def step_impl(context): 28 | pass 29 | 30 | @then('/api/cities.json should be correct') 31 | def step_impl(context): 32 | pass 33 | 34 | @then('/api/all.json should be correct') 35 | def step_impl(context): 36 | pass 37 | -------------------------------------------------------------------------------- /tests/after_build/validation.feature: -------------------------------------------------------------------------------- 1 | Feature: Validating APIs 2 | Scenario: New event added to events.yml and jekyll has built 3 | Given an event added and jekyll has built 4 | Then /api/conferences.json should be correct 5 | Then /api/events.json should be correct 6 | Then /api/cities.json should be correct 7 | Then /api/all.json should be correct -------------------------------------------------------------------------------- /tests/before_build/validation.feature: -------------------------------------------------------------------------------- 1 | Feature: Validating data 2 | Scenario: New event added to events.yml 3 | Given an event added 4 | Then events.yml must exist 5 | Then all mandatory event fields must exist 6 | Then all mandatory event page fields must exist 7 | Then all event fields must be the right type and length 8 | Scenario: New conference added to conferences.yml 9 | Given a conference added 10 | Then conferences.yml must exist 11 | Then all mandatory conference fields must exist 12 | Then all conference fields must be the right type and length 13 | Scenario: Events exist in respective folders 14 | Given event files exist 15 | | event | 16 | | 50p | 17 | | anthillinside | 18 | | fifthelephant | 19 | | fragments | 20 | | jsfoo | 21 | | metarefresh | 22 | | reactfoo | 23 | | rootconf | 24 | Then all files should have .md extension 25 | --------------------------------------------------------------------------------