GithubHelp home page GithubHelp logo

michalmytych / symfony-university-final-project Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 417 KB

License: MIT License

Dockerfile 3.30% Shell 1.43% PHP 79.04% Twig 13.14% Python 3.10%
php74 symfony44 cron jdoodle-api docker mysql twig

symfony-university-final-project's Introduction

#System automatycznego sprawdzania zadań algorytmicznych


Opis funkcjonalności

Aplikacja pozwala na tworzenie kont typu Nauczyciel lub typu Student w systemie. Użytkownik o roli nauczyciela może tworzyć kursy oraz powiązane z nimi grupy ćwiczeniowe, do których może dodawać uczestników - użytkowników posiadających konto typu Student. W ramach kursu/grupy nauczyciel może dodawać zadania programistyczne oraz testy do nich (zbiór danych wejściowych i odpowiadających im poprawnych danych wyjściowych programu). Zadania mają formę podobną do problemów algorytmicznych z konkursów Google CodeJam lub HashCode. Posiadacze kont typu Student mogą akceptować zaproszenia do kursów lub grup i wykonywać zadania dodane przez nauczycieli.


Proces oceny zadania będzie przebiegał w następujący sposób:

  1. Wklejenie kodu rozwiązania do formularza w panelu Studenta przez użytkownika typu Student (lub dodanie rozwiązania jako pliku).
  2. Wstępna weryfikacja rozwiązania - czy rozwiązanie nie przekracza limitu znaków/rozmiaru pliku.
  3. Dodanie rozwiązania do bazy danych.
  4. Przesłanie rozwiązania przez serwer do zewnętrznego serwisu zajmującego się bezpiecznym kompilowaniem i uruchomieniem kodu programów komputerowych, wraz z danymi wejściowymi.
  5. Odebranie odpowiedzi od zdalnego serwisu.
  6. Sprawdzenie, czy długość wykonania zadania i ilość wykorzystanej pamięci nie przekroczyły określonych dla zadania limitów.
  7. Porównanie outputu rozwiązania z określonymi dla zadania poprawnymi odpowiedziami.
  8. Informacje na temat każdego z kroków 3 do 7 będą na bieżąco zapisywane w bazie danych (status) i wyświetlane w elemencie html imitującym konsolę.
  9. Po zakończeniu procesu automatycznej oceny, Nauczyciel będzie dodawał komentarz do rozwiązania studenta i wystawiał ostateczną ocenę. Zewnętrzny serwis który chciałbym wykorzystać do obsługi kompilacji i uruchamiania kodu rozwiązań to interfejs API Jdoodle. Autoryzacja żądań będzie przeprowadzana przez dołączanie do nich identyfikatora CLIENT_ID oraz tokena CLIENT_SECRET. Połączenie z API chciałbym realizować przez klasę-serwis wykorzystującą cURL. Dodatkowo serwis umożliwia Nauczycielom dodawanie, edycję i usuwanie postów na tablicach kursów i grup, Studentom oraz nauczycielom na przeglądanie rankingu kursów i grup, oraz edytowanie ustawień swojego konta i profilu.

Model bazy danych

poprawiony_model_projektu_SI

symfony-university-final-project's People

Contributors

michalmytych avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.