Colonel By Library Website
CSS HTML JavaScript
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

Colonel By Library

The official git repository for the Colonel By Library website.

###Table of Contents


This project is licensed under a zlib style license. You can find a copy of the terms in the COPYING file.


To ready your system for running the web-server, you are required to install the following dependencies.

  • nodejs - the webserver is based on the node runtime engine for its modern features and scalability. You also need the npm executable. Make sure to append to PATH after installation. (NOTE: Linux users, check your vendor's repository for the most supported version. You might also need to get npm seperately)

After installing the above, you need to install the node-specific dependencies. For this part, you need to make sure you have appended to PATH. Execute the following in the root directory of this repository.

npm i

If you are on Linux, you might have to execute:

sudo npm i

This command installs all the node dependencies in a new folder called node_modules.


After you have installed all the dependencies including the node-specific ones, continue with the following. You will have to use the node command so make sure it is appended to PATH.

NOTE: Linux users, sometimes the node command does not exist, in this case you will have to use nodejs instead. However if you wish to use simply node. You can do the following:

sudo ln -s /usr/bin/nodejs /usr/bin/node
  • Open a command prompt or terminal at the root directory of the repository and execute:

      node task/serve

    It should say that it is listening on port 80. Now go to your browser and go to localhost/teachers/library/. If you are unsuccessful go to the next step. (NOTE: Linux users, you might need to use sudo).

  • Firstly make sure all the dependencies installed correctly. If not you can try to host at a different port. You can do so like:

      node task/serve <port>

    <port> just represents a port number, choose one that is not 80 and try again. However this time you will have to specify the port in the URL. Try localhost:<port>/teachers/library/ where <port> is the number you used. If you are still unsuccessful, seek assistance from the interwebs (namely stackoverflow) or someone who knows about this stuff (or try to figure it out yourself).


  • Open a command prompt or terminal at the root directory of the repository and execute:

      node task/deploy

    If this completes successfully, then you will find a folder called deploy in the root folder. This folder is a clone of the public folder where all html, css, and js files are minified.

  • Now you can create a server for the deployed version by executing:

      node task/serve-deploy

    This task follows behaves the same way as task/serve so check out the section in Usage on how to use it to its full extent or if you are having problems with it.


To make contributions, firstly fork this repository. There is a fork button somewhere on the GitHub repository page. You will see that there is a copy of this repository under your own GitHub account. Do stuff there, all the usual stuff like bug fixes or improvements. Then send a pull request and someone will review the code and merge it.

To change the main user styles, open less/main.less.css and make the appropriate changes. Then in the root folder, execute:

node task/css

You can even change the entire Bootstrap theme! To do this, experiment with the usage of task/themec.

Make sure you also include your name information in both package.json and CONTRIBUTORS.


Somewhere on the GitHub repository page, you will find a link to Issues. Click it, it's safe, I promise. Report anything that you feel is an issue: namely to report bugs and suggest improvements.

File Types

This section will provide a reference to important file types and extensions in no particular order.

  • .js - Javascript file (nodejs as well as client-side scripting)
  • .css - Cascading Style Sheets for custom styling
  • .less[.css] - CSS pre-processor to generate bulky CSS while still being easy to configure
  • .json - Javascript Object Notation file, used to store configurations or data
  • .md - Markdown file (like this file)
  • .gitkeep - Placeholder file because git ignores empty directories
  • .gitignore - Specifies what is ignored by git (can be overridden in subdirectories)
  • .html - Hyper Text Markup Language file
  • .jp[e]g, .png, .gif, .svg, .ico - Image files
  • .eot[@], .svg, .ttf, .otf, .woff- Font files
  • .zip - ZIP archive
  • .psd - Adobe Photoshop file
  • .txt - Plain Text file

Appending to PATH

NOTE: Linux user, Linux programs usually automatically make themselves accessible from the terminal. Only continue reading if you face a problem with executing. You should not append to PATH on Linux but simply create a symbolic link (or symlink). Read more at the links provided below.

To append to PATH means being able to access all executables from the directory that is to be appended from the command line without having to specify the location of the executable.

For example if you want to add node.exe on Windows, navigate to the directory where the executable is installed and copy the path of the directory to your clipboard (NOTE: if the path is C:\Program Files\nodejs\node.exe, only copy C:\Program Files\nodejs\). On Windows you can append to PATH from the command line.

setx PATH "%PATH%;C:\Program Files\nodejs\"

The newly set PATH will only take affect on newly opened command prompt. So the current command prompt will need to be closed and reopened.

Often, the executables of a program might be placed in a subdirectory named bin.

You can read more:

Other Resources