In my work, I created a web application for handling C, C++ homework. The web page was made for the students and teachers of the German education. The name HAWeb comes from the German Hausaufgabe and the Web words.
The application was written in JAVA/GWT, for webserver I choose Glassfish and MySQL as database.
I separated 3 roles in the application: student, teacher and administrator. There is only one page, where the users can log in, after the login the users get to different page according their roles. The three different roles give access to different functions. The administrator has the same rights, that the teacher has, but it can edit the configurations and see the logs. The teacher can create groups from the students. It can create examples for every student or just for its group. The examples can be compulsory or optional. The teacher can correct the examples that the students handled in. The web application is able to correct an example automatically, if it’s set. Furthermore the teacher sees the list of the students with a statistic. The student sees only the examples, which can be handed in. The student can hand in solutions for an example. If a solution is wrong, the student can hand it in again, till the end of the deadline. If the deadline is owner for an example, there is an additional deadline for fewer points. The student can see a statistic overview of the examples.
There is a separate Java application. The main Glassfish application connects to this and sends the solution source files for compiling and running. The separate application sends back the result of the compile and run to the main application. The application shows the result to the teacher, or if it’s set, corrects the solution comparing the result and the expected result.