Skip to content

This is the code repository of the Embedded Systems and Computer Architecture Laboratory (ESCAL) website for the Department of Computer Engineering, University of Peradeniya. https://cepdnaclk.github.io/escal-new/

License

Notifications You must be signed in to change notification settings

cepdnaclk/escal-new

Repository files navigation

ESCAL Website

Table of Contents

Under the Hood

This is the code repository of the new static website made with Jekyll, for the Embedded Systems and Computer Architecture Laboratory maintained by Department of Computer Engineering, University of Peradeniya, Sri Lanka.

Old website: https://escal.ce.pdn.ac.lk/

What is ESCAL?

The Embedded Systems and Computer Architecture Laboratory (ESCAL) is a research group at the Department of Computer Engineering at the University of Peradeniya. The primary focus of the group is inclined towards micro-architectural design aspects of embedded microprocessors and their security and reliability concerns.

The group is led by Roshan Ragel and has continued collaborations with Professor Sri Parameswaran at the Embedded Systems Lab, School of Computer Science and Engineering, the University of New South Wales (UNSW), Sydney.

The group consists of the academic staff members of the Department of Computer Engineering, the Postgraduate (Ph.D., M.Phil., M.Eng., and M.Sc.) students from both the Department of Computer Engineering and the Postgraduate Institute of Science (PGIS), and the Undergraduate students from the Department of Computer Engineering and the Department of Statistics and Computer Science. The group also collaborates with the academic staff members, postdoctoral researchers and postgraduate students from the School of Computer Science and Engineering, UNSW. Roshan Ragel regularly visits UNSW, Sydney, as a visiting research fellow.

At present, the group works on the following themes:

  • Security and Reliability of Embedded Systems
  • Side-Channel Attacks and Countermeasures
  • Application Specific Processor and Memory Hierarchy Design
  • High-Performance Computing

✨New contributor guide

If you're a new contributor, please follow the following guidelines.

Getting Started

To get started, follow the following steps:

  1. Clone the repository to your local machine
$ git clone https://github.com/cepdnaclk/escal-new.git
  1. Install Jekyll. You have two options:

    $ conda install -c conda-forge ruby c-compiler compilers cxx-compiler

    Finally, install Jekyll and Bundler, which will let you install the dependencies for the site:

    $ gem install jekyll bundler
  2. Install the site's build dependencies. These are specified in Gemfile. From the root of the repository, run:

$ bundle install

This step might take a few moments as it must download and install a number of local extensions. It will create a local file called Gemfile.lock. These are the "frozen" dependencies and their version numbers needed to build the site.

  1. Build the site locally. From the root of the repository, run:
$ bundle exec jekyll serve liveserve

This will build the site's HTML and open a server at localhost:4000 for you to preview the site.

Using VSCode to build and run the site locally

We recommend using VSCode to build and run the site locally since it is very convenient. To do so, follow the following steps:

  1. Install Jekyll Run extension on VSCode.
  2. After installing the extension, open VSCode settings (Preferences > Settings) and search for Jekyll-run. Then, find the Command Line Arguments section and add the following arguments:
--livereload --force_polling --port 3000
  1. Now, you can build and run the site locally by clicking the play button with Jekyll Run label on the bottom left corner of VSCode. Note that this extension will also automatically install the required dependencies.

How to contribute

You must push your changes to the gh_pages_dev branch and create a pull request to the main branch. @NuwanJ, @Akilax0, @sathiiii, @shamalweerasooriya, or @dinuransika will review your pull request and merge it to the main branch. Please do test your changes locally before creating a pull request. Also, link the issue you're working on in the pull request.

Website structure

Please refer to this document for the website structure.

Folder structure

All the folders that has a name starting with _ are used by Jekyll to build the website. Please refer to this document for more information.

.github/workflows

This folder contains the GitHub Actions workflow files. Currently, there is only one workflow file called scheduled-deploy.yml. This workflow file is used to deploy the website to the main branch every Sunday at 12:00 AM (00:00) GMT+5:30. It basically runs the python scripts to generate the static pages and pushes them to the main branch. The commit will trigger the GitHub Pages build process and the website will be updated.

assets

This folder contains the assets used in the website including css, js, images, and fonts. If you want to add new styles, please edit the assets/css/style.css file. Try to use Bootstrap4.0 styles as much as possible. Refer to the Bootstrap 4.0 official documentation for more details. If you want to add new JavaScript scripts, please edit the assets/js/scripts.js file.

pages

This folder contains all the HTML pages of the website. The pages that are generated from the python scripts are located here. If you want to add a new page, please create a folder with the page name and add an index.html file to it. If there're subpages, add them to the same folder as well.

python_scripts

This folder contains the python scripts used to pull data and generate HTML pages. If you want to add a new script, please add it to this folder.

Resources for learning Jekyll

TO-DO

Jekyll Templates

  • Template for main site.
  • Dynamic navigation bar.
  • Template for Projects page.
  • Template for People page.
  • Template for ESCAL Bio-med page.
  • Template for ESCAL Robotics page.
  • Template for ESCAL GPU page.
  • Template for Resources page.

Other

  • Python script to extract and save information of ESCAL related people from the API.
  • Python script to extract and save ESCAL related project information from the API.
  • Add pagination to the projects page.
  • Pages for all project categories.
  • Implement projects search.
  • Project thumbnails (For now: placeholders).
  • Implement theme switcher.
  • Implement people page.
  • Implement Research home page.
  • Implement Resources page -> Create cards for ESCAL facilities (robotics, wearables, fpgas, etc.)
  • Improve footer.
  • Re-organize the home page layout -> Add latest project updates in the hero section, recent projects, recent works, etc.
  • Prepare a site plan (user navigation diagram kind of thing, with all the possible pages).
  • Improve pagination controls in the Projects page.
  • Implement the filtering functionality of the tag cloud in the Projects page.
  • Add project tags to the project extraction script.

About

This is the code repository of the Embedded Systems and Computer Architecture Laboratory (ESCAL) website for the Department of Computer Engineering, University of Peradeniya. https://cepdnaclk.github.io/escal-new/

Topics

Resources

License

Stars

Watchers

Forks