eMath is a comprehensive system designed to empower professors and students in the creation and exploration of educational content. Professors can effortlessly author books within the platform, incorporating a variety of links such as references to other books in the database, links to webpages, links to modules for illustration and exploration, as well as quiz questions. This flexible environment fosters interactive learning experiences.
MathJax
, providing the option for global and local use of \newcommands
. This enables authors to simplify data entry for presentation. In addition, it enables the author to develop a semantic markup system for math notation. In the latter case, mouse over on a math notation triggers a little hint window which explains the meaning of the notation.Database Migration: migrate the eMath system from a flat XML-DB to a proper DB backend, and to adapt the content presentation system to this new backend.
Content Authoring Web Interface: create a web interface for content authors. Using this interface, content authors should be able to easily edit existing content, as well as create new content.
Database(postgresql):
Install
sudo apt update
sudo apt install postgresql postgresql-contrib
Setup user
enter postgresql shell: sudo -i -u postgres
then psql
(if not work, try psql postgres
)
CREATE DATABASE emathdb;
CREATE USER admin WITH PASSWORD 'admin1234';
GRANT ALL PRIVILEGES ON DATABASE emathdb TO admin;
Useful commands
DROP DATABASE emathdb;
exit
\q
then exit
export database
pg_dump -U admin emathdb > emathdump.pgsql
psql emathdb < emathdb.sql
to restore data from sql file.Backend(Django):
python 3.7.x pip3
python3 -m venv venv
source venv/bin/activate
to deactivate simply do deactivate
cd eMath/backend/
pip3 install -r requirements.txt
python manage.py makemigrations
python manage.py migrate
python manage.py runserver
create a admin account: python manage.py createsuperuser
Frontend(React):
nvm node version management (optional)
sudo apt install nodejs
sudo apt install npm
sudo apt install yarn
cd eMath/frontend
yarn add
yarn start
eMath offers the convenience of logging in through both traditional username/password credentials and Google accounts. To enable Google OAuth integration, follow these steps:
Open the settings.py
file in the eMath backend codebase.
Locate the variables GOOGLE_OAUTH2_CLIENT_ID
and GOOGLE_OAUTH2_SECRET
.
Update these variables with the corresponding values from your Google OAuth credentials.
Open the credentials.js
file in the eMath frontend codebase.
Locate the variables OAuthClient
.
Update the object with the corresponding values from your Google OAuth credentials.