Giter Club home page Giter Club logo

zeus.ugent.be's Introduction

zeus.ugent.be

Build Status Code Climate PageSpeed PageSpeed

This repository contains the source code for zeus.ugent.be, the website of Zeus WPI, the official student association of Informatics at Ghent University. The site is developed using nanoc, which is actively developed by ex-Zeus member ddfreyne. The CSS framework used is Bulma. We primarily focus on using markdown for blogposts and events. Feel free to make a Pull Request with a blog post if you feel inspired and need an outlet!

Please check the Wiki for questions about structure.

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.

Prerequisites

You will need Ruby (gem), yarn and pandoc (optional). Installation instructions are listed below.

Installing

If bundler is not yet installed on your system, make sure to install it using the following command:

gem install bundler

In the root directory of the project, execute following commands

bundle install
yarn install

You will (momentarily) also need pandoc and latex to compile the reports from the board meetings. Refer to your OS package manager to install these things.

These will pull in all Ruby and Node.js dependencies. If everything goes well, you should be able to execute the following.

bundle exec nanoc live

Go to http://localhost:3000 to view the site! When developing, the site gets regenerated when editing files. A simple refresh will show the new changes.

Optional: install submodules

Our official meeting reports are added as a submodule so they update automatically. For normal development, it is not required to initialize these. But if you want to deploy to production (or test the report generation), you will have to initialize the submodule.

git submodule update --init --recursive

Deploying

The latest and greatest builds on master get deployed automatically using travis.

For manual deployment, run

# Build the site for production
bundle exec nanoc --env=prod

# Run checks
bundle exec nanoc --env=prod check --deploy

# Deploy it to the server
bundle exec nanoc deploy --target public --env=prod

If you want to deploy this on your own system for whatever reason, just serve the files using a webserver like nginx or Apache.

Uploading media files

Before using mediafiles on the site, upload them via pics.zeus.gent, our own custom uploading service. You'll receive the server-filename which is available at the aforementioned url. The file must be less than 1MB!

To upload remove the . in action="./zeuswpi" in following code so it looks like this:

form id="upload" class="form" method="post" enctype="multipart/form-data" action="/zeuswpi" style="display: none;">
    <label class="file-upload">

Submitting a Pull Request

Once you've submitted a PR, it will automatically be deployed to (PR#).pr.zeus.gent, for easier reviewing.

Analytics

Analytics are powered by Fathom and are available on https://stats.zeus.gent. These are only available to administrators with proper rights. These analytics are self hosted and provide only simple statistics for our information, without breaching your privacy.

Built With

  • nanoc, static site generator
  • Bulma, CSS framework

Authors

See the list of contributors who participated in this project.

zeus.ugent.be's People

Contributors

abeforgit avatar ajuvercr avatar chvp avatar feliciaan avatar fkd13 avatar hannes-dev avatar iasoon avatar iliclaey avatar iwijn avatar jan-pieterbaert avatar klaasg avatar mcbloch avatar miaoulo avatar myncke avatar niknetniko avatar nuttyshrimp avatar realfoxie avatar redfast00 avatar rien avatar robbe7730 avatar sammydelanghe avatar smessie avatar str-gen avatar tomnaessens avatar topvennie avatar tyboro2002 avatar vandorpedavid avatar werthen avatar wschella avatar xerbalind avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

zeus.ugent.be's Issues

Tooltips

Tooltips.
Everywhere.

Or just where it makes sense.

Author information

We could add author information to every post. We usually just post in function of the entire board, but we might even accept blogposts from other members in the future on here, who knows.

Add minimap to cammie

We can give absolute coordinates to cammie. Why don't we add a little minimap to the cammie interface so you can immediately focus on a certain point?

Soleway use for location description

I'd be cool if we could add a small description to reach The Kelder™ using Soleway or any other sufficient indoor routing platform (but since SW is UGent based and has significant Zeus input etc.).

Maybe even for events not happening at The Kelder™?

Fill in metatags

We want compatibility with

  • Facebook (OpenGraph)
  • Twitter
  • Google (schema.org)

Add a link to this repo (these issues)

If people see something that doesn't look right or have general suggestions, invite them to make an issue or pull request.

Something among the lines of "See something off? Make a pull request here:"

Support grouped events

We want to highlight multiple events in a blogpost, such as codenights. These kind of events are not so common though.

Create 404 page

The nginx default 404 page could do for now, but it would be nice to have one that matches the rest of the site's style.

Change colors in events page

The description of the events draws to much attention so you want to click on it. It would be more logical to make the title orange and the description black.

Highlight header icons on hover

When hovering over an icon in the header, the current highlighting sets it's collor to dark.
That's only a small change from dark-grey.

We might want to catch the eye a little bit more.

Maybe let it turn orange?
Or the same underlining as in the navbar menu?
RAINBOWS?

Project page layout, styling & interactivity

  • Project page content (which projects, short description, github link, picto available for each project?)
  • Project page styling (Bulma & additions)
  • Project page interactivity (proper expansion of project description in the tile layout no-link)

Event structure

Events

Example structure:

content/
  assets/
  events/
    15-16/
    16-17/
      bottlebats/
        main.md
        intro.md
        codenight.md
        finale.md
      awk.md
      sed.md
      ruby.md
    index.erb

Metadata

Every event is a .md file with the following metadata tags:

Required

  • title: String
  • time: Date
  • location: String
  • description: String

Optional

  • banner: URL

Grouped events

If there's a series of events (for example summer code nights) these can be grouped by creating a folder containing a main.md, which will need the following metadata:

Required

  • title: String

Optional

  • location: String
  • banner: URL

Other .md files made in that folder are sub-events which need to fit the metadata description listed earlier

Highlight full div

Instead of highlighting just the text, highlight full div in the navbar.

Titlebar color in event page

The division between the titlebar and coloured hipster lander page header is not clear. I think it would be nicer if this divide would be clearer. Perhaps try making it a shade darker?

Create file uploading service

In order to keep the git repo small, we should only add plaintext posts here. Any images and other media should be served elsewhere. We should make a simple tool where you can upload files.

Fix styling of archive result pages

  • add date to preview
  • sort posts from later to earlier (now alphabetically)
  • sort years from later to earlier (now alphabetically)
  • add year overview show number of posts in each year

Searching

Since this is a static site, we need something else to do the searching for us. There's a very elegant javascript solution: http://www.tipue.com/search/, but this is not the best solution for certain javascript-hating people.

We could start off using that library (should be pretty quick to set up), and later maybe look at using Google custom search, or even implementing our own little search engine using the json file generated for tipue

Tile overview

An overview for all tiles that should be visible on the homepage.
These can be different sizes to feature important sections and should be nothing more than a distilation of information or an image/icon functioning as a link to the relevant page.

Some possible tilesizes (based on current 3 per row layout):

  • Full: full 3 column width
  • Wide: 2 column width
  • Standard: current tilesize
  • High: 2 row height
  • Small: 1/4 of current tilesize

Proposed tiles:

  • Main event (full)
  • Projects (standard)
  • Events (standard)
  • Gamification top 4 (wide)
  • Some important projects (Hydra, 12urenloop, etc.) (all standard)
  • Cammie (standard)
  • Wiki (standard)
  • Blogpost (high)
  • Facebook, Github, RSS, ? (all small)
  • About Zeus (information, location, history(?), statuten, bestuur, verslagen, etc.) (all small)
  • Archives (small or standard)
  • Fotoloop (standard)
  • Quote loop (wide or standard)

It would be fucking fantastic if these could be reorderd something something cookie, a man can only dream.

Add projects to search scope

Searching on the site finds info in both events and blogposts, but ignores projects for now.
It would be cool those are also included.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.