/BATS

Binary Arithmetic Teaching System

Primary LanguageTypeScript

BATS

Binary Arithmetic Teaching System

Video Demo - Live Demo

πŸ¦‡ Introduction

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.

🧰 Features

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

πŸ”¨ Installation

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".

Using a local MongoDB

  1. Install MongoDB on your machine.

  2. In the backend folder create .env file with the variable like in the example:

MONGO_URI='mongodb://localhost:27017/myLocalDatabase'
  1. 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.

Argon2 Encryption

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.

πŸš€ Start the app

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.

πŸ–ΌοΈ Screenshots

screenshotsGroup1

screenshotsGroup2

screenshotsGroup3

screenshotsGroup4

screenshotsGroup5

🧱 Technical architecture

meanstack Image reference

πŸ”Ž Technologies

Frontend:

Backend:

Database:

Deployment:

πŸ“ˆ Contributors

BATS was created by the group BEEF (Bringing Education Everywhere for Free) with the members

beef_with_white_background