You don't know how to deal with binary numbers? No worries, BATS will help you! BATS provides theoretical information as well as automatically generated and evaluated exercises in order to help you learn binary conversion, decimal conversion, binary arithmetic and logical operators.
BATS teaches binary conversion, decimal conversion, logical operations and binary arithmetic by providing features like
β theoretical explanations for each topic
β randomly generated exercises
β progressive feedback to incorrect answers with, for example, hints and calculation steps
β timed quizzes that allow you to compete with other users
β showcases your best quiz performance on a leaderboard alongside other users
This project was done with Angular CLI version 18.0.2 as well as express.js.
If you want to install a local version of BATS, make sure to first install Angular 18.0.2 and express.js.
Then you can install the frontend by running the command-line command npm install
in the root folder of BATS.
After running the command in the root folder, change to the backend folder, and run npm install
again.
Last step is to set up the database. For this, see "Using a local MongoDB".
-
Install MongoDB on your machine.
-
In the backend folder create .env file with the variable like in the example:
MONGO_URI='mongodb://localhost:27017/myLocalDatabase'
- Start MongoDB and ensure it's running on the correct port (default is 27017).
As an alternative, You may also create a MongoDB Atlas account and follow the instruction provided by the service to set up the remote database. See MongoDB Atlas.
For our user authentication process, we have chosen to implement Argon2 as the key encryption tool. Argon2 is a highly secure and efficient password-hashing algorithm designed to protect user credentials. In our system, Argon2 is utilized to hash user passwords during the registration process. The hashed passwords are then stored in our database, ensuring that even if the database were to be compromised, the actual passwords remain secure. When users attempt to log in, their input is hashed using Argon2 with the same parameters, and the resulting hash is compared to the stored hash to authenticate the user.
In order to set up Argon2 You need add the encryption variable in the created .env file:
SECRET_KEY = 'MySecretKey'
You can use Argon2 Hash Generator & Verifier to generate the key.
Run ng serve
in the root folder of BATS in order to start the frontend.
Now open another terminal, change into the backend folder and run nodemon server.js
.
Afterward you can open http://localhost:4200/
and use BATS locally.
Frontend:
Backend:
Database:
Deployment:
BATS was created by the group BEEF (Bringing Education Everywhere for Free) with the members
- π§βπ» @khoffschlag
- π©βπ» @Ula-MK
- π©βπ» @nikabogd