- Download postgresql https://www.postgresql.org/download/windows/ with User: postgresql and Password: admin //Technically, you can choose any user or password, but choosing these would mean not having to modify the project every time you want to run it :)
- Download pgadmin 4 https://www.pgadmin.org/download/
- Download IntellijIDEA https://www.jetbrains.com/idea/
- Download Java 1.8 (you need an Oracle account, good luck)
- Download Gradle 4.6 (if intellij brings a newer version, downgrade to this one)
- Run the project
To modify the project:
- Make a new branch for any small change
- Make a pull request and wait for approve
###Request-Response bodies and available endpoint
Application runs on port 8080 so calls have to be made on http://localhost:8080 and following endpoints:
/user
-
Create a user: POST /user
- Request body JSON
{ "email": "test@test.com", "password": "1", "role": "admin" } - Response body
Status code 200OK for success
Status code 400BadRequest for failure
- Request body JSON
-
Get all users: GET /user
- Request body JSON
none - Response body
Status code 200OK for success
[ { "id": 2, "email": "test@test.com", "password": "1", "role": "admin" }, { "id": 3, "email": "pupil@test.com", "password": "1", "role": "pupil" }, { "id": 4, "email": "test@yahoo.com", "password": "sfsd", "role": null }, { "id": 5, "email": "test3@yahoo.com", "password": "sfsd", "role": null }, { "id": 6, "email": "test@test.com", "password": "dsds", "role": "pupil" }, { "id": 7, "email": "test@test.com", "password": "dsds", "role": "pupil" } ]
- Request body JSON
-
Get user by id: GET /user/{id}
- Request body JSON
none - Response body
Status code 200OK for success
{ "id": 3, "email": "pupil@test.com", "password": "1", "role": "pupil" }
- Request body JSON
-
Delete user by id: DELETE /user/{id}
- Request body JSON
none - Response body
Status code 200OK for success
Status code 500InternalServerError for failure
- Request body JSON
-
Update user by id: PUT /user
needs fixing - do not use -
Check if user exists for login: GET /user/login
Andreea needs to write this
/pupil
-
Create a pupil: POST /pupil/{userid}/{classroomid}
- Request body JSON
{ "firstname": "test", "lastname": "test" } - Response body
Status code 200OK for success
{ "id": 5, "user": { "id": 7, "email": "test@test.com", "password": "dsds", "role": "pupil" }, "firstname": "John", "lastname": "Davis" } Status code 400BadRequest for failure
- Request body JSON
-
Get all pupils: GET /pupil
- Request body JSON
none - Response body
Status code 200OK for success
[ { "id": 1, "user": null, "firstname": "firstnametest", "lastname": "lastnametest" }, { "id": 2, "user": { "id": 3, "email": "pupil@test.com", "password": "1", "role": "pupil" }, "firstname": "test", "lastname": "test" } ]
- Request body JSON
-
Get pupil by id: GET /pupil/{id}
- Request body JSON
none - Response body
Status code 200OK for success
{ "id": 2, "user": { "id": 3, "email": "pupil@test.com", "password": "1", "role": "pupil" }, "firstname": "test", "lastname": "test" }
- Request body JSON
-
Delete pupil by id: DELETE /pupil/{id}
- Request body JSON
none - Response body
Status code 200OK for success
Status code 500InternalServerError for failure
- Request body JSON
-
Update pupil by id: PUT /pupil
needs fixing - do not use
/teacher
-
Create a teacher: POST /teacher/{userid}
- Request body JSON
{ "firstname" : "firstnametest", "lastname" : "lastnametest" } - Response body
Status code 200OK for success
Status code 400BadRequest for failure
- Request body JSON
-
Get all teachers: GET /teacher
- Request body JSON
none - Response body
Status code 200OK for success
[ { "id": 1, "firstname": "firstnametest", "lastname": "lastnametest", "user": { "id": 2, "email": "test@test.com", "password": "1", "role": "admin" }, "subjects": [ { "id": 1, "name": "matematica" } ] } ]
- Request body JSON
-
Get teacher by id: GET /teacher/{id}
- Request body JSON
none - Response body
Status code 200OK for success
{ "id": 1, "firstname": "firstnametest", "lastname": "lastnametest", "user": { "id": 2, "email": "test@test.com", "password": "1", "role": "admin" }, "subjects": [ { "id": 1, "name": "matematica" } ] }
- Request body JSON
-
Delete teacher by id: DELETE /teacher/{id}
- Request body JSON
none - Response body
Status code 200OK for success
Status code 500InternalServerError for failure
- Request body JSON
-
Update teacher by id: PUT /teacher
needs fixing - do not use
/classroom
-
Create a classroom: POST /classroom
- Request body JSON
{ "name": "12A" } - Response body
Status code 200OK for success
Status code 400BadRequest for failure
- Request body JSON
-
Get all classrooms: GET /classroom
- Request body JSON
none - Response body
Status code 200OK for success
[ { "id": 2, "pupils": [ { "id": 2, "user": { "id": 3, "email": "pupil@test.com", "password": "1", "role": "pupil" }, "firstname": "test", "lastname": "test" } ], "catalog": { "id": 1 }, "name": "12A" } ]
- Request body JSON
-
Get classroom by id: GET /classroom/{id}
- Request body JSON
none - Response body
Status code 200OK for success
{ "id": 2, "pupils": [ { "id": 2, "user": { "id": 3, "email": "pupil@test.com", "password": "1", "role": "pupil" }, "firstname": "test", "lastname": "test" } ], "catalog": { "id": 1 }, "name": "12A" }
- Request body JSON
-
Delete classroom by id: DELETE /classroom/{id}
- Request body JSON
none - Response body
Status code 200OK for success
Status code 500InternalServerError for failure
- Request body JSON
-
Update classroom by id: PUT /classroom
needs fixing - do not use
/catalog
-
Create a catalog: POST /catalog/{classroomid}
- Request body JSON
{ } - Response body
Status code 200OK for success
Status code 400BadRequest for failure
- Request body JSON
-
Get all catalogs: GET /catalog
- Request body JSON
none - Response body
Status code 200OK for success
[ { "id": 1 } ]
- Request body JSON
-
Get catalog by id: GET /catalog/{id}
- Request body JSON
none - Response body
Status code 200OK for success
{ "id": 1, "classroom": { "id": 2, "pupils": [ { "id": 2, "user": { "id": 3, "email": "pupil@test.com", "password": "1", "role": "pupil" }, "firstname": "test", "lastname": "test" } ], "catalog": { "id": 1 }, "name": "12A" } }
- Request body JSON
-
Delete catalog by id: DELETE /catalog/{id}
- Request body JSON
none - Response body
Status code 200OK for success
Status code 500InternalServerError for failure
- Request body JSON
-
Update catalog by id: PUT /catalog
needs fixing - do not use
/grade
-
Create a grade: POST /grade
- Request body JSON
{ "pupil" : 2, "subject" : 2, "grade" : 2 } - Response body
Status code 200OK for success
Status code 400BadRequest for failure
- Request body JSON
-
Get all grades: GET /grade
- Request body JSON
none - Response body
Status code 200OK for success
[ { "id": 1, "catalog": { "id": 1 }, "pupil": 2, "subject": 2, "grade": 2 } ]
- Request body JSON
-
Get grade by id: GET /grade/{id}
- Request body JSON
none - Response body
Status code 200OK for success
{ "id": 1, "catalog": { "id": 1 }, "pupil": 2, "subject": 2, "grade": 2 }
- Request body JSON
-
Delete grade by id: DELETE /grade/{id}
- Request body JSON
none - Response body
Status code 200OK for success
Status code 500InternalServerError for failure
- Request body JSON
-
Update grade by id: PUT /grade
needs fixing - do not use
/subject
-
Create a subject: POST /subject
- Request body JSON
{ "name" : "matematica" } - Response body
Status code 200OK for success
Status code 400BadRequest for failure
- Request body JSON
-
Get all subjects: GET /subject
- Request body JSON
none - Response body
Status code 200OK for success
[ { "id": 1, "name": "matematica" } ]
- Request body JSON
-
Get subject by id: GET /subject/{id}
- Request body JSON
none - Response body
Status code 200OK for success
{ "id": 1, "name": "matematica", "teachers": [ { "id": 1, "firstname": "firstnametest", "lastname": "lastnametest", "user": { "id": 2, "email": "test@test.com", "password": "1", "role": "admin" }, "subjects": [ { "id": 1, "name": "matematica" } ] } ] }
- Request body JSON
-
Delete subject by id: DELETE /subject/{id}
- Request body JSON
none - Response body
Status code 200OK for success
Status code 500InternalServerError for failure
- Request body JSON
-
Update subject by id: PUT /subject
needs fixing - do not use