Below is my complete problem statement for my school project (please bear with the lengthy content). Please tell me how to go about it and what are the pre-requisites to start off with it. I want to do this project in C under Linux. I am comfortable with C, but have no experience with socket programming/client-server programming. It will be really helpful if you could give me the detailed approach on how to go about it.
Lab Grading System
Basic Idea: There would be two windows- 1) A student window or the client 2) A faculty window or the server
The student window will have the following options: 1) Input the text file (this text file will have the code/program made by the student). 2) Send a text file 3) A table containing all the student’s information as to their codes have been submitted or not. 4) Student history- it will have certain features i) No of times student has logged into the window(attendance in lab) ii) No of codes available in the student’s profile. iii) The grades received by the student will be saved in a table (the grading table).
As the student makes a code or a program, he will save his code in a file format and send it to the faculty. As he sends, the table containing the information of all the students will be updated to “sent file / awaiting grading”. Student can view his profile. A student can view other students code only if the faculty responsible has chosen to share the code for every other student of the class. When the student will log in to his account the lab time for that particular batch will be tallied and if the time is same then his/her attendance will be incremented by 1 automatically. It will be in “read only” mode so the student will not be able to tamper with it.
Faculty window: (Server)
The faculty window will have the following options: 1) A table containing the information of all the students. The table will have the following fields: i) Student name ii) File submission status iii) Grades received 2) View the code sent by the student. 3) Run the code 4) Compile the code 5) Rate the code
As the faculty opens her window, she sees the student list with submitted/not submitted written besides the students name. The faculty will see “AWAITING ACCEPTANCE” wriiten besides any students name when the student will have recently submitted the code. Sending of any code will not be allowed when the time allotted by the teacher is over. If the faculty wants to see the code sent by the student and grade it, she’ll click on the “view the code” option. The file will be opened in the notepad. After checking the code if the faculty wants to run/compile it, she’ll come back to her window and click on the “Run”, “Compile” options. The control will be passed over to the respective compiler (java, c++). And after the program has successfully been compiled faculty can rate it as per her wish. If a student has to submit an incomplete code due to time limit being over, code will be rated according to faculties parameters. If a faculty likes some students code, she can share it for everybody on her student list.
You need to read Beej's Guide to Network Programming.