Skip to content

Code assessment and testing system for teaching C++

Notifications You must be signed in to change notification settings

kotborealis/nitori

Repository files navigation

🔑 Contest-like system for testing simple C++ programs w/ unit-tests inside docker 🐳

It's made specifically to make teaching C++ easier, automating such tasks as checking and testing solutions for C++ assignments.

Usual workflow is:

  • Teacher uploads new unit-test for task (assignment) in form of a single .cpp file.
  • Students upload their solutions in form of a single/multiple .cpp/.h files.
  • Solution compiled and tested against selected tests; any errors during compilation, linking or testing reported to students/teacher.

Workflow

Production environment

Create .env to specify env variables for both frontend and backend (see .env.dev for reference). Especially specify public path and auth endpoint to use.

cd ./sandbox && ./build.sh && cd ..
docker-compose build
docker-compose up

Development environment

Build sandbox image:

cd ./sandbox && ./build.sh && cd ..

Run database via docker-compose, using docker-compose.dev.yml:

docker-compose -f docker-compose.yml -f docker-compose.dev.yml up --build -d database

Run backend:

cd backend
npm start

Run frontend via webpack-dev-server:

cd frontend
npm start

frontend proxies calls to backend on /api/v1/ endpoint and mocks auth api on /auth/user_data.php (frontend/mock-api/mock-api.js).

About

Code assessment and testing system for teaching C++

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages