Rememberry is a web app that combines the value of spaced repetition of flashcards and visualisation of mind maps. Every user can create their own maps that have a tree-shaped design where the branches are the topics, and the leaves at the end are just regular flashcards. The main goal is that when users are trying to learn for their upcoming exam, instead of just learning with plain flashcards, they can create a map that immediately shows how certain topics and flashcards are connected.
- Node.js - Version 20 (as a runtime)
- Bun - Version 1.1 (as a bundler for the backend)
- pnpm - Version 8.15.5 (as a package manager)
- Docker - Version 25.0.3
It is recommended to install
nodewith nvm and then set thenodeversion withnvm use 20.
Please note that this repository is using
pnpmas a package manger instead ofnpm. AND it is usingbunas a bundler for the backend.
This tuturial is written on and for unix like systems.
git clone https://github.com/rememberry-io/rememberry
cd rememberrycp .env.example .envpnpm ipnpm run docker-db-initCurrently two services are present in this repository, the backend (built using tRPC) and
the frontend (built using Next.js) and it is possible to either run
them locally with pnpm or in docker.
For ideal development for either backend or frontend it is recommended to run the service,
that is developed for, with pnpm to take advantage of the hot reload.
To take advantage of the pnpm workspace, use pnpm --filter=<service> like:
pnpm --filter=backend depending on which service is interacted with.
pnpm add --filter=backend <package-name>pnpm add --filter=frontend <package-name>For simpler development instead of using pnpm run --filter=<service> dev it is
possbile to use the alias pnpm run <service> dev. The scripts (such as dev) are then
defined in the local package.json file of the corresponding service and can be run with the alias.
pnpm run backend devpnpm run frontend devAs mentioned, it is possible to run either the backend or the frontend as a docker container.
For this case two pnpm commands are avaiable.
pnpm docker-build-backendpnpm docker-build-frontendTo start all docker containers (this will also start the database if it has not been initialised yet) at once run:
pnpm docker-build-allThis repository is using docker compose to run services inside of docker, which
means using commands such as docker compose start/stop/down frontend/backend
are completely valid and are encouraged to be used or taking advantage of docker
desktop is also possible.
In case new migrations are added run the following command
This will delete all content in the database therefore only for local devleopment
pnpm run docker-db-reset- Typescript
- tRPC
- Postgres
- Drizzle
- Nextjs
- Kubernetes
- GitHub Actions
Backend, Frontend, Setup, CI/CD and Hosting:
- Laurin Notemann Laurin-Notemann
Fronted UI:
- Paulo Ramirez paulocerez
- Joel Heil-Escobar Joelheile
Backend:
- Lennart Pafel lnart
- all functions are defined as arrow function () => {}
- except methods for classes and page.tsx pages
- all exports are named, no default export except for page.tsx
- for components with props we use FC
- e.g. export const test: FC = ({...props}) => {}