The spaced repetition learning app Splearn was created because I need it in order to learn new technologies with the highest possible efficiency. It utilizes JSON Web Token login, Password Hashing, MongoDB + Mongoose, Angular 4, Node.JS, Express, Nginx reverse proxy, SCSS, Automated Deployment, SSL Certificate, HTTP/2 among others.
The backend implements a CRUD API through its express router and thanks to its modular code, adheres to the DRY principle.
Also modular is the SCSS which makes use of variables and mixins to ensure that the website scales with ease. I designed it to be mobile first, so that the load time is reduced on mobile. It is obviously 100% responsive as well.
One of the core principles of the app was to create your own questions. This is to increase the chances of the user actually understanding what they are being tested on. Had I decided that sharing questions would help users learn more effectively, I would have chosen a 'One-to-Many', or a 'One-to-Squillions' database schema, depending on the shared to own questions ratio. This wasn't the case, however, so by using a 'One-to-Few' database schema, I was able to minimize the amount of calls to the database.