/algorithms

A collection of computing algorithms

Primary LanguageVue


Algorithms
Algorithms

A collection of computing algorithms

Website Status Latest Release Contributors Issues License

AboutGetting StartedRequest FeatureChangelogContributeLicense

💡 About

This project compiles a list of common computer science algorithms, demonstrating their implementation in a range of modern programming languages. Currently, the following languages are supported:

🚀 Getting Started

Cloning

To clone this repository, run the following command.

git clone https://github.com/ollyrowe/algorithms.git

To contribute to this project, you must first make a fork of the repository and then clone the fork.

git clone https://github.com/<your_username>/algorithms.git

Installation

After cloning the repository, run the following command to install the required dependencies.

npm install

Algorithms

All resources held within this project can be seen from the website. This site hosts an up-to-date view of all algorithms, data structures and additional general resources held within this repository.

Website

The website is built with the Vue framework with support from the Buefy component library.

The relevant steps to setting up and configuring the development environnement for the website can be seen below.

Development

The source code for the website can be found within the ./website folder of this repository.

After cloning the repository, step into the website directory and install the dependencies.

cd website
npm install

To run the local development environment, the following command can be used.

npm run serve

To re-compile the website's content, the following command can be ran.

npm run compile-content

Note that this command is automatically ran when running npm run serve

This command parses the resources held within the root directories of this repository to a JSON file which is then read by the hosted site. Currently, this script accounts for the following folders and file signatures which supports resource folders and a set of files for each language implementation in addition to a general information file.

├── algorithms
│   ├── <resource>
│   │   ├── <resource>-info.txt
│   │   ├── <resource>.cs
│   │   ├── <resource>.java
│   │   ├── <resource>.js
│   │   ├── <resource>.py
│   │   ├── <resource>.ts
├── data-structures
│   ├── ...
└── general
    └── ...

Linting

The development environnement requires the installation of both ESLint and Prettier. If you are using Visual Studio Code, the supporting extensions should also be installed and configured.

To lint and fix files from the command line, the following command can be used.

npm run lint

Build

A production build of the website can be compiled with the following command.

npm run build

CI / CD

This project makes use of GitHub Actions to enable continuous integration and deployment of new features into the master branch which is automatically deployed to GitHub Pages.

✨ Request Feature

To request a new algorithm or website feature, feel free to submit an issue. Pull requests are also welcome.

Quick links:

📈 Changelog

The project changelog can be found here.

💬 Contribute

Getting Started

To contribute to the project, feel free to make a fork and submit a pull request. This project makes use of Conventional Commits to enable automated Semantic Versioning.

Contributors

🧾 License

This project is licensed under the terms of the MIT license.