/CV-Flask

A website to illustrate my CV with Flask

Primary LanguageHTML

CV-Flask

This project is to create a static website in which I can showcase my CV. I use Flask as minimalistic framework that allows to write very concisely web apps and plays nicely with a bunch libraries. Flask-Flatpages is one such library that allows to write content in Markdown and have it automatically converted to the equivalent html. Finally, Frozen-Flask can be used to "build" static Flask applications, turning everything into a collection of static html/css files that can be put on a web server (Tomcat, python) without needing additional technologies.

The structure of the project makes a distinction between templates, which encode the structure of webpages in HTML + Jinja2 (a templating language), and the pages, which contain the content of webpages written in Markdown language. Templates are filled with the content of pages, hence there should always be more pages than templates.

IDEA

Here's a table of key-values relevant to this project:

Key Value
inspiration Static Website w. Flask
technology Flask
technology Frozen-Flask
technology Flask-Flatpages
useful markdown cheatsheet
useful interactive markdown
inspiration CSS bootstrap
inspiration CSS Twilio
free CSS templates Templated
free CSS templates html5up
background Flask Explore Flask
web assets mgmt Flask-Assets
web assets mgmt Flash-Webpack
CSS management Explore Flask: Static files
Colour palettes Color-hex Palettes
inspiration look Nicolas Perriault
inspiration look Charles Leifer
inspiration look NPR, though not blog
inspiration look Flask blog

TODOs

  • List of requirements
  • Make design for website
  • Future:
    • Containerisation (Kubernetes/Docker)
    • Use CSS library
    • Compile CSS beforehand with e.g. LESS
    • Deploy on Raspberry Pi or host
    • Blogging page to write about discoveries?

DONE

  • Read Explore Flask (70 pages)

DESIGN

  • Landing page
    • Title bar
      • Title (left)
      • Other pages (right)
  • About me
    • Name
    • Location
      • Inserted Open Street Maps pin Leuven
    • Education
  • Career
  • Side-projects
    • Ruimte-jager (needs clean-up)
    • Connect4
  • Contact
  • (Future: blog?)

SOME NICE CSS TEMPLATES

REQUIRED

  • Python 3
  • pipenv + dependencies

USEFUL BASH COMMANDS

Install pipenv for local user:

$ pip3 install --user pipenv

If pipenv not working, then ~/.local/bin needs to the PATH. Do this permanently by adding the following to ~/.profile:

export PATH=$PATH:~/.local/bin

Build environment:

$ pipenv install

Start virtual environment:

$ pipenv shell

Test if in virtual environment:

$ which python

Start Flask server:

$ python3 sitebuilder.py run

Alternatively, run Flask server within virtual environment:

$ pipenv run python3 sitebuilder.py run

Build project (=create static html/css files):

$ python3 sitebuilder.py build

Run static project:

$ python3 -m http.server

Extra: Read Python documents on localhost:4040:

$ pydoc3 -p 4040