Skip to content

API Documentation

Michail Chatzianastasis edited this page Aug 17, 2019 · 10 revisions

Api Documentation

Thesis Routes

URL METHOD QUERY PARAMS Description Authorization
/thesis GET page:integer ,university:id,professor:id Get all available thesis No
/thesis/:thesisId GET Get the specified thesis No
/thesis/completed GET Get all completed thesis No
/thesis/file/:thesisId GET Get files of the specified thesis No
/thesis/file/:fileId GET Get specified file No

University Routes

URL METHOD QUERY PARAMS Description Authorization
/university GET page:integer Get all universities No
/university/:universityId GET Get specified university by Id No

Admin Routes

Admin for external routes

URL METHOD QUERY PARAMS Description Authorization
/admin/create_external POST email,password in Post body Create external user Admin token
/admin/get_externals POST page:integer Get externals users Admin token
/admin/get_external/:userId GET Get specified external by id Admin token
/admin/delete_external/:userId DELETE Delete specified external Admin token
/admin/get_not_active_externals POST page:integer Get all not-active externals users Admin token
/admin/activate_external/:userId POST Activate external with the specified Id Admin token

Admin for user routes

URL METHOD QUERY PARAMS Description Authorization
/admin/get_users GET page:integer Get all users Admin token
/admin/get_user/:userId GET Get specified user by Id Admin token
/admin/delete_user/:userId DELETE Delete specified user Admin token

Admin for university routes

URL METHOD QUERY PARAMS Description Authorization
/admin/create_university POST name of university in Post body Create university Admin token
/admin/delete_university/:universityId DELETE Delete specified university Admin token
/admin/application_period POST application_period_start and _application_period_end in Post body Specify the application period Admin token

Professor Routes

Routes for professors theses:

URL METHOD QUERY PARAMS Description Authorization
/professor/thesis GET page:integer Get all theses of user(professor) Professor Token
/professor/:thesisId GET Get the specified thesis of user(professor) Professor Token
/professor/thesis POST Create a new Thesis Professor Token
/professor/thesis/:thesisId PUT Update specified thesis Professor Token
/professor/thesis/:thesisId DELETE Delete specified thesis Professor Token

Routes for requests:

URL METHOD QUERY PARAMS Description Authorization
/professor/request GET Get all requests of user(professor) Professor Token
/professor/:requestId GET Get the specified request Professor Token
/professor/request/:requestId POST Accept the specified request Professor Token
/professor/request/:requestId DELETE Delete the specified request Professor Token
/professor/assigned GET Get all assigned theses of professor to students Professor Token
/professor/assigned/:assignedId GET Get the specified thesis of professor to student Professor Token
/professor/pending GET Get all pending thesis from externals or students in the university of user(professor) Professor Token
/professor/pending/:pendingId GET Get the specified thesis from externals or students in the university of user(professor) Professor Token
/professor/pending/:pendingId POST Accept the specified pending thesis Professor Token
/professor/university GET Get all professors from the same university Professor Token

Routes for professor to be supervisor:

URL METHOD QUERY PARAMS Description Authorization
/professor/supervise_pending GET Get all requests for supervision from other professors to user Professor Token
/professor/supervise_pending/:supervise_requestId GET Get the specified request for supervision from other professors to user Professor Token
/professor/supervise_pending/:supervise_requestId POST Accept the specified request for supervision Professor Token

Routes for professor to propose another supervisor:

URL METHOD QUERY PARAMS Description Authorization
/professor/propose_supervisor/:supervisorId/:thesisId POST Propose the specified professor to supervise the specified thesis Professor Token
/professor/accept_supervisor GET Get the accepted supervision requests from professors Professor Token
/professor/accept_supervisor/:supervise_requestId/ GET Get the specified accepted supervision request from professors Professor Token
/professor/accept_supervisor/:supervise_requestId/ POST Confirm the supervision request. Professor Token

Routes for professor to get drafts of students in assigned thesis:

URL METHOD QUERY PARAMS Description Authorization
/professor/draft/:assigned_thesisId GET Get drafts names of specified assigned thesis Professor Token
/professor/draft/:assigned_thesisId/:draftId GET Get specified draft data of specified assigned thesis Professor Token

Student Routes

URL METHOD QUERY PARAMS Description Authorization
/student/check/:thesisId GET Check if student has applied in a specified thesis. Student Token
/student/check_assigned GET Check if student has assigned to a thesis. Student Token

Student requests

URL METHOD QUERY PARAMS Description Authorization
/student/request GET Get all requests of user(student) Student Token
/student/request/:thesisId POST Apply for the specified thesis Student Token
/student/request:requestId Delete Delete specified request Student Token
/student/request/accepted GET Get all accepted requests from professors Student Token
/student/request/:requestId/accepted GET Get specified accepted request from professors Student Token
/student/request/:requestId/accepted GET Confirm request, the specified thesis of professor is assigned to the student. All other requests of user(student) are deleted Student Token

Student propose thesis (pending)

URL METHOD QUERY PARAMS Description Authorization
/student/pending GET Get all pending theses of user(student) Student Token
/student/pending/:thesisId GET Get specified pending thesis of user(student) Student Token
/student/pending POST Create a thesis. It remains pending until a professor accept the thesis and student confirms the request Student Token
/student/pending/:thesisId DELETE Delete specified pending thesis of user(student) Student Token
/student/pending/accepted GET Get all accepted pending thesis of user(student) Student Token
/student/pending/:pendingId/accepted GET Get accepted specified pending thesis of user(student) Student Token
/student/pending/:pendingId/accepted POST Confirm the accepted pending thesis from professor. Now thesis is currently available for assigning to a student Student Token

Student Assigned Thesis

URL METHOD Description Authorization
/student/thesis GET Get the assigned thesis of user(student) Student Token
/student/draft/:assigned_thesisId GET Get the drafts name (no data) of the assigned thesis Student Token
/student/draft/:assigned_thesisId/:draftId GET Get the specified draft data of the assigned thesis Student Token
/student/draft/:assigned_thesisId POST Create a draft for the specified thesis Student Token

External Routes

URL METHOD Description Authorization
/external/signup POST Register External user. In request body there should be an email and password
/external/login POST Login External user. In request body there should be an email and password. A jwt token is send to client
/external/pending GET Get all theses of user(external) External Token
/external/pending/:pendingId GET Get specified pending thesis of user(external) External Token
/external/pending POST Create pending thesis. External Token
/external/pending/accepted GET Get all accepted pending theses of user(external) External Token
/external/pending/:pendingId/accepted GET Get specified accepted pending thesis of user(external) External Token
/external/pending/:pendingId/accepted POST Confirm the accepted pending thesis from professor. Now thesis is currently available for assigning to a student External Token
/external/thesis/file/:thesisId POST Post pdf file of specified pending thesis External Token
/external/thesis/thesisId PUT Edit specified thesis External Token
/external/file/:thesisId/:fileId DELETE Delete specified pdf file of thesis External Token