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 | bashOnce bun is installed, you can download and install the project's dependencies:
bun install --frozen-lockfileThis 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 devIn 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
To format the code according to the project's settings, run:
bun run formatRun all tests (format checker, unit tests, linter, type checker):
bun run testTo only run the unit tests one can use
bun testbun run buildContinuous integration is provided by GitHub Actions, see .github/workflows. In short:
- Push events to the
mainbranch 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
stablebranch trigger the production build, the result is deployed at https://tcs.uni-frankfurt.de/algo-learn/.