Codemaze-Web (aka frontend)
Codemaze is an advanced platform specifically designed to enhance the programming education experience in higher education. Providing a virtual environment for code execution, Codemaze allows users to practice, test, and evaluate their programs across various programming languages. Furthermore, the software integrates powerful features including plagiarism detection reports, detailed logging capabilities, and Swagger documentation for easy reference. With support for adding programming languages, customizable configurations, and flexible architecture built on Docker containers, Codemaze empowers both instructors and higher education students to collaboratively and efficiently explore the realm of programming.
This is the suggested frontend to run with the Codemaze backend.
Table of contents
Prerequisites
You must have installed in the host machine before deploying or in your local machine before running:
- Docker - used to manage and host the app.
Deploy
Clone this repository in the host machine.
Environment
You have to create an environment file on the root directory named .env
with keys for the API URL (if you haven't changed it when deploying Codemaze, it'll be your_ip:8080
) and school name:
REACT_APP_API_URL="0.0.0.1:8080"
REACT_APP_SCHOOL_NAME="My School"
Run deploy:
make build
make deploy
By doing this, Codemaze-Web will be running in the :80
port. You can customize the port by updating the Makefile.
Contributing
You can run Codemaze-Web locally for debugging and testing purposes.
As debug (localhost:3000)
Navigate to the root folder and run:
make build-debug
make debug
You must have a .env
file in the same way as the .env (deploy) one.
Stopping
To stop and remove the Docker containers, you can run:
make stop-deploy # if deploy
make stop-debug # if debugging
License
Introduced by Danilo Cleber Becke in 2023, the BSD 2-Clause License outlines the terms under which the software can be utilized and distributed. Users are free to modify the software, as long as they adhere to two main conditions: 1) they must include the original copyright notice and a list of conditions, and 2) if they distribute the software in binary form, they must reproduce the copyright notice and conditions in the documentation or accompanying materials. The copyright holder and contributors are not liable for any direct, indirect, incidental, consequential, or other damages arising from the use of the software, regardless of the legal theory applied.
Technologies
Developed using React with TypeScript.
- @altostra/type-validations
- dayjs
- Docker
- i18next
- i18next-browser-languagedetector
- @mui/icons-material
- @mui/material
- @mui/x-charts
- @mui/x-date-pickers
- react-i18next
- react-router-dom
- serve
Contact Info
You can reach me at danilobecke@gmail.com and http://linkedin.com/in/danilobecke/.