This application enables students and teachers to coonect with each other, helps teachers share their material with their students in a more profissional and distraction free environment, provide for a chatting place with the teacher so they can be heard and slim the chances of the teacher missing a student note, cares to those in need for knowledage but are not a part of any educational establishment.
This project is made for:
- Teachers.
- Students.
- Scholars.
- DRIHMIA Redouane - Database, ORM and API.
- Mohammed Omer - API, API tests and documentation for the API.
- Ubonisrael Amos Akpanudoh - Front end and code reviewing.
To run this project, you will need to add the following environment variables to your .env file
SECRET_KEY='defined by user'
JWT_SECRET_KEY='defined by user'
ACME_EMAIL='to send verification email'
FRONT_END_ROUTER="127.0.0.1:3000"
BACK_END_ROUTER="127.0.0.1:5000"
p='database password'
u='database user'
h='ip address of database'
D='ACME'
Front end: React and Nextjs
Back end: Python3 and SQL
Framework: Flask
Install dependancies
sudo apt update
sudo apt install mysql-server
sudo apt-get install python3-dev
sudo apt-get install libmysqlclient-dev
sudo apt-get install zlib1g-dev
sudo pip3 install mysqlclient
sudo pip3 install SQLAlchemy
sudo apt-get install -y python3-lxml
sudo pip3 install Flask
sudo pip3 install flask_cors
sudo pip3 install flasgger
sudo pip3 install pytest
sudo pip3 install yagmail
sudo pip3 install flask_jwt_extende
npm install
Run the fornt end
- To run the front-end server on development mode
cd ACME-Education/acme-education-frontend npm run dev
- To run the build
cd ACME-Education/acme-education-frontend npm run build
- To run the front-end server on production mode:
cd ACME-Education/acme-education-frontend npm run start
Run the back end
- Starting the database, populate it and run the back end
cd ACME-Education ./pop.bash
- starting the API
cd ACME-Education python3 -m api.v1.app
You can find the API documentation by following this link or see a less cooler version by navigating to /docs
in the repo and see the MD file.
The test are devided according to the HTTP methods. This way we get the advantage of isolating different casses for each endpoint. This also give the advantages of having the ability to test for a specific HTTP method without having to look for a specific case in a rather long file.
To run tests dedicated for the API, move into the folder containting the method you would like to test.
- Run all the test casses for all endpoints
pytest -v
- Run all the test casses for a specific endpoint
pytest -v test_{endpoint name}.py
- Run aspecific test casse for an endpoint
pytest -v test_{endpoint name}.py::{test case name from instide the file}