Giter VIP home page Giter VIP logo

mango-is-website's Introduction

mango-is-website

Website of Mango Information Systems SPRL.

Blog: unless specified otherwise, blog content is published under a Creative Commons Attribution license.

Branding: All rights reserved to the copyright holder: Mango Information Systems SPRL

Contents

This repository hosts the code of all the contents in mango-is.com:

  • static website
  • blog
  • web applications (/tools pages)

Technologies

c.f. package.json and submodule for a more complete list.

Installation

  1. install hexo-cli as a global dependency: npm install hexo-cli -g
  2. clone this repository git clone --recursive https://github.com/Mango-information-systems/mango-is-website.git
  3. switch to the version you would like to use cd mango-is-website; git checkout branch-or-tag-here
  4. install node dependencies: npm install
  5. create _config.yml (in project's root directory), config/test._config.yml and config/prod._config.yml files based on config/_config.yml-sample
  6. create config/dev.theme._config.yml, config/test.theme._config.yml and config/prod.theme._config.yml files, based on theme._config.yml-sample
  7. create config/test.robots.txt and config/prod.robots.txt files
  8. create dynamic/params.json, based on dynamic/params-sample.json

Development

Run npm start. This script serves a development version, while watching changes in the site content or CSS framework...

  • layouts are defined in the custom hexo theme.
  • UI framework in use is skeleton framework. It is included as a git submodule. Its content is compiled at build time (or on-the-fly during development).
  • content can be found inside directory source.
  • dynamic parts can be found inside directory dynamic.

Tools

If you are interested in one of the tools and do not want to carry the website, blog and other tools, ask us in an issue, we will try to help isolating the corresponding code.

myTagOverflow dev setup

In order to run myTagOverflow in dev environment, the site must be served from port 80 (otherwise stackExchange API auth fails). The following command forwards port 80 traffic to port 4000:

sudo iptables -t nat -I OUTPUT -p tcp -d 127.0.0.1 --dport 80 -j REDIRECT --to-ports 4000

Then myTagOverflow can be reached at the following URL: http://localhost/tools/myTagOverflow/

Build and deployment

How it works:

  • build step compiles the site in directory public
  • deploy step copies the content of directory public inside /var/www/[environment].mango-is.com
  • deploy step copies the server-side dynamic application /home/srv-node-mango/app
  • server-side application (/home/srv-node-mango/app/server.js) to be launched separately (e.g. as a systemd daemon) - currently common for test and prod if environments are hosted in the same server.

test environment

  1. build with npm run build:test
  2. deploy with npm run deploy:test

prod environment

  1. build with npm run build:prod.
  2. deploy with npm run deploy:prod.

mango-is-website's People

Contributors

blueclock avatar dependabot[bot] avatar mef avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

blueclock

mango-is-website's Issues

JS lib update

Can I update the current JS libs? I mean the ones in /js/. Which ones should I not touch (eg if d3 upgrade would cause breaking changes)

head meta tags

update the layout template to complete the meta tags ( some are missing, like prevArticle link, robots noindex etc)

  • titles for the various type of pages, with support for subtitles
  • robots noindex/nofollow on non-prod environments
  • opengraph meta tags
  • canonical
  • xml alternate
  • rel prev/next

Extra tags to be added if needed in a separate issue/release

migrate blog home page and categories index pages

Legacy blog index page presented articles in cards, up to 4 per row : http://mango-is.com/blog/

  • New layout should present one article per row
  • Same content as in odler version should be displayed: publication date, title(s), description, thumbnail image.
  • "cards" may be used (not compulsory)
  • article titles font size to be decreased (between 1.2 and 1.5 rem maybe?)
  • subtitle may be put on the same line, or in next one (the h2 variant inside _partial/post/title.ejs)
  • size constraint should be applied to the thumbnail images (html side, no resize of the actual images)

todo Mehdi for later:

  • group articles by category instead of year

Related partial file: archive-post.ejs + sub-files

Site refactoring

All the site should now be served from Jekyll, and managed from a unique repository.

This work has already been started in mango-blog repository.

To do:

  • git repos management - merge site, blog and tools #2
  • site improvements (structure)
    • upgrade to latest stable Jekyll
    • switch to Foundation #6
    • update blog structure: new categories, move existing articles accordingly
    • integrate blog CTAs per category
  • site content
    • add a "general conditions" page #3
    • add landing page for social media offer
    • add landing page for business intelligence offer
    • add landing page for dataviz offer
  • blog content
    • write, publish and promote articles

migrate conversion optimization landing page

The content from conversion optimization landing page should be migrated to Hexo.

Source: content is to be taken from the current page in branch master.

Target: page in branch hexo-wip.

New logic: landing page content is now defined exclusively inside the yaml front matter. An array called sections hosts the content, which is used by the theme's landing.ejs template.

sections:
 - 
  # top section: value proposition
  background-image: /img/bg/eagle.jpg
  content:
   - type: h1
     class: small
     value: Higher BI adoption
   - type: h1
     class: small
     value: More successful projects
   - type: h1
     class: small
     value: Lower Data‐Warehousing costs
   - type: p
     value: <small><em>Let us help you succeed</em></small>
   - type: cta
     value: View offers
     primary: true
     trg: /view-packages
     href: "#packages"

background images: not defined yet, temporary images can be used as placeholders (or no image at all).

ℹ️ The landing page Business Intelligence has a similar structure and can be used as a model.

reference layout

A customer reference is composed of the following:

  • profile picture
  • name
  • title
  • website (optional)
  • quote text

References are generated in the layout partial reference.ejs.

Todo: add css rules and adapt html markup (if necessary) in order to make the component's presentation more suitable (currently: no margins around the image) and responsive.

May be based on #40 .

see also: https://hexo.io/docs/tag-plugins.html#Block-Quote

client-side js setup

setup, load and bundle the client-side js

  • build setup
  • socket.io component
  • smooth-scroll component
  • reveal.js component? - postponed
  • d3 component - postponed
  • ga component
  • ga custom tracking component

home page improvements

  • rephrase tagline to show where mango fits in the equation (businesses should get more profitable, but how to we help them?)
  • communicate the core competences/values of mango-is: what's the link between the 4 offers.

Decide on icon font

I've come to the conclusion that Foundation icon font is a bad choice. Check out their repo's code contributions, they stopped 3 years ago, and last activity on issues seems to be in 2013. We can still just keep the icons, but I see they have much less than Font Awesome (or others). There are no chevron or angle icons (used in your csv-to-json tool). I can only use bland arrows.

Please let me know if this alters your icon font choice. (and also which folder to put the iconfont files in)

Upgrade roadmap

To do:

  • switch to hexo instead of jekyll
  • switch to a skeleton build instead of bootstrap
  • implement new visual identity
  • update blog structure: new categories, move existing articles accordingly
  • integrate blog CTAs per category

migrate blog comments

livefyre comments are not user-friendly at all, and the platform does not seem to be evolving. Another solution should be used instead, and existing comments migrated.

  • identify a suitable comments solution: user-friendly, easy login/auth for users, protected from spam (disqus?)
  • determine the most appropriate migration strategy:
  • actually transfer comments to the new platform,
  • or (worst-case scenario): keep them as plain html in the posts
  • actually migrate the comments

media object component

A component should be created, similar to Bootstrap/foundation's similar features.

Would be used (amongst others) in the "people" sections of the landing pages.

This probably implies changes both in the skeleton framework, and in the html markup to be used inside the hexo site.

The solution should be responsive:

  • responsive image,
  • stack text below image on small screens.

Both these features should be feasible using skeleton's built-in features.

Read also:
Vanilla html / css solution (2010)

site footer

  • migrate website footer from branch master to branch hexo-wip
  • style footer in a suitable way (desaturated) -- > in skeleton framework
  • structure to be defined inside footer.ejs view partial, with some hard-coded content
  • list of links to main pages to be retrieved from the theme's config

e.g.

        <% for (var i in theme.menu){ %>
          <a href="<%- url_for(theme.menu[i]) %>"><%= i %></a>
        <% } %>

P.S. menu's location may be moved from theme to site config, where it's better placed (more related to the site's content than appearance).

git repositories update

Adapt to the sites' consolidation

  • merge everything in one code base managed by one git repository
  • move to mango-is-website repository
  • update tools and blog repository texts to explain this is an archive
  • update hyperlinks to repositories (e.g. inside tool page)

site incompatible with jekyll 3.1.2

Several issues are met when building current stable version of the site (v2.3.2) with jekill v3.1.2:

  • page.type is undefined in the templates, resulting in:
    • wrong structure for non landing pages (fluid layout, top navbar shown)
    • wrong meta tags and schema.org content
  • incorrect markdown rendering (markdown inside html blocks no more rendered?)

add dynamic component

On the side of the static site, there should be a dynamic web server to handle requests, such as contact form submissions

create index page for tools

  • List and link to tools (csv to json, twitto, ...)
  • fix navbar (currently, blog section is highlighted as active)

Possibly, present pending projects and measure interest.

copywriting

double-check take decision vs make decision

home page

  • migrate home page content from jekyll site
  • update content
    • value proposition
    • one section per link to landing page, instead of 1 panel
    • add clients logos
    • add reference
    • add client satisfaction rating, à-la booking.com (horizontal bar chart ratings):
      • Quality of delivered service
      • Value of advice provided
      • Respect of deadlines
      • software expertise
      • Overall satisfaction (total))

See also, for inspiration:

  • moo.com home page

migrate dataviz blog articles

Articles to be migrated, containing some javascript that may need to be adapted:

  • Belgians, twitter and klout
  • Finding twitter influencers part 2
  • How to choose the right web data visualization library
  • Pre-render d3.js charts at server side

also:

  • adapt svg font sizes

tooltip component

Some kind of tooltip mechanism should be provided to replace bootstrap's.

e.g. in use inside "Belgians, twitter and Klout" article.

modernize site appearance

Goal is to make mango-is.com look better and more modern, plus customize foundation library styles to match with the visual identity of mango-is.com.

  • landing page and site pages in general: have sections with full-width backgrounds
  • blog index pages: replace the three-cards-per-line by somethin visually more appealing, maybe one article per line, 1/3 column with article thumbnail. 2/3 with title and description?
  • there should be no border shadow in the "cards", or at least something much more subtle than the current ones.
  • side footer: change its color background, make it less contrasted and less prominent.
  • several blog articles content should be improved ( precisions to be added here later)

This issue is work-in-progress, you may edit to add your input, or comment.

modal and contact form

  • some modal mechanism should be integrated. postponed
  • contact page should contain a contact form
  • all other pages should contain the same contact form hidden by default, displayed inside a modal whenever needed postponed
  • display of the contact form modal should degrade gracefully by redirecting to contact page, for visitors without javascript
  • classic form handling requirements: user-friendliness, validation, graceful errors management, honeypot etc.

branding

logo and tagline may be put back in the homepage, and somewhere inside the landing pages

Load scripts from CDN with fallback

The following assets should be loaded from a CDN (both js and cdn), with fallback to local copy of the assets in case of error:

  • jQuery
  • foundation
  • d3.js
  • reveal.js
  • use a cdn to load the assets
  • fallback to local version of the assets in case of CDN unavailability or error
  • make sure that the offline version of the site works (http://mango-is.com/tool/csv-to-json.html)

(issue edited by @mef)

update blog CTAs

  • remove Tribalytics CTA, replace it by contact us CTA.
  • update copywriting of 'about this blog' section

markup issue in authors page

The blog authors page mixes markdown and html, for articles titles line, in consequence mad ids are created for the h4 tags:

screenshot - 250715 - 11 03 06

Fact is that we don't need any Id at all for these headings.

todo:

  • fix the issue inside file: /blog/authors/index.md
  • check that the other index pages (one at the root of /blog, and one per category) don't have a similar problem

fix gitignore mess

when cleaning up the git cache earlier, some files were deleted by mistake, and need to be restored.

Other files were added, but do not belong to the repository.

culprit: 4126aee

migrate regular blog articles

Articles to be migrated, with regular blog layout, and not javascript-intensive:

  • Twitter influencers about sports business in BE/NL
  • Finding twitter influencers part 1
  • Twitto.be now has multi-dimensional filters

Todo:

  • remove wrapping div.section
  • fix issues with specific kramdown syntax {: target...
  • fix markdown inside html blocks
  • rest of the program

general conditions

  • Add a"general conditions" page. It should replace the existing "terms" page
  • copyright stuff to be updated and split in a separate page

Quid creating a _config.yml file?

EG, this is mine for webketje.com:

github: [Repository metadata]
timezone: Europe/Brussels
encoding: utf-8
title: webketje
permalink: none
author: Kevin Van Lierde
highlighter: pygments
markdown: kramdown
permalink: pretty

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.