Hi there! This document outlines some rules for contributing to the site.
There is a lot that still needs to be improved, ranging from implementing more data structures and algorithms, making slight modifications to existing ones, bug fixing, updating the UI and making general improvements. Whatever your interest in web development is, you can probably improve your skills by contributing in that regard!
For more details on what needs to be done, check out the Issues tab.
The site was created using create-react-app application. It also uses Single Page Apps for GitHub Pages for compatibility with GitHub Pages.
src/algo/
contains data structure/algorithm-specific scripts
src/anim/
contains the base animation API
src/screens/
contains the top-level screens (the homepage, the algorithm screen)
The animation API is very well documented here. However, some changes have been made to it as part of the conversion to ES6, so existing JavaScript files are also a good reference for learning how to do things. All functions can be found in AnimationMain.js
.
This repository requires node
/npm
installed. We recommend using the LTS version of Node (16.17.1) or earlier, as version 17+ uses an incompatible version of openSSL.
We recommend VSCode with extensions for ESLint and Prettier installed. We also recommend turning on "format on save" (editor.formatOnSave
) to handle automatic prettier formatting.
This repository requires node
/npm
- Fork the repository
- Clone the fork of the repository
cd
into the project directorynpm install
to install necessary dependenciesnpm run start
to start local version of the app- The site should be locally accessible from
localhost:3000
Before creating a pull request, please ensure your code passes ESLint and Prettier by running the following commands:
npm run lint
npm run prettier
Also ensure that the only committed changes are in files relevant to the PR. Do not push changes to package-lock.json, node_modules or anything else that is unrelated to your ticket!
To make a PR:
- Create a new pull request
- Click “Compare across forks”
- Base repo should be RodrigoDLPontes/master and head repo should be the relevant branch on your fork
- Name the PR something simple and descriptive
- In the description, make sure to reference the issue you worked on (such as “closes #155”, “addresses #150”, etc)
- Add anything else to the description that you think makes your changes more understandable