This is the prototype of a modern learning platform for a typical algorithms and data structures course.
- We prefer quality to quantity: It is important to make the user experience as smooth as possible, before expanding the content.
- We are incorporating the principles of constructive alignment, active learning, spaced repetition, and gamification.
While you are free to use npm
or yarn
, we recommend bun
.
Follow the instructions to install bun:
curl -fsSL https://bun.sh/install | bash
Once bun is installed, you can download and install the project's dependencies:
bun install --frozen-lockfile
This command can also be used to install missing dependencies, e.g. when dependencies were changed.
The following command will start a local HTTP server for development:
bun dev
In principle, you're now in position to start development. However, we strongly recommend you use VS Code as your IDE and install the following extensions:
- Visual Studio Code
- ESLint
- Stylelint
- Tailwind CSS IntelliSense
- Prettier - Code formatter
- Auto Rename Tag
- optional: GitHub Copilot
- optional: Atom One Dark Theme
Run all tests (format checker, unit tests, linter, type checker):
bun run test
To only run hte unit tests one can use
bun test
bun run build
Continuous integration is provided by GitHub Actions, see .github/workflows
. In short:
- Push events to the
main
branch and pull requests trigger the staging build, the result is deployed in the staging area at https://tcs.uni-frankfurt.de/algo-learn-testing/. - Push events to the
stable
branch trigger the production build, the result is deployed at https://tcs.uni-frankfurt.de/algo-learn/.