Wiki for laptops and desktops with technical details and reviews. This was a group project done for a UBC computer science course: CPSC 304.
This is a fullstack web application that was originally made with Java, MySQL, and vanilla HTML/CSS/JavaScript. The web server was implemented using Javalin.
I later redesigned the frontend to use Angular and setup my Raspberry Pi to be able to run this application in a Docker container. The database system also needed to switch from Oracle to MariaDB because no Docker image for Oracle DB was compatible with my Raspberry Pi (an armv7 system).
API Reference
POST /reviews
Creates a new review for a user with id reviewerId
if review uuid
is empty; otherwise, updates the existing review with id uuid
.
- Body
- uuid: string
- textContent: string
- score: int
- reviewerId: string
- creationDate: int
- computerModelNumber: string
|
|
DELETE /reviews/{id}
Deletes existing review.
- Path params
- reviewerId: string
GET /reviews/model/{computerModelNumber}
Get reviews of the computer model with the given computerModelNumber
.
- Path params
- computerModelNumber
|
|
GET /{componentType}
Returns a list of components of the given componentType
.
- Path params
- componentType: (cpu|gpu|ram)
|
|
GET /models
Returns a list of computer models.
- Query params
- search: string - filters for models containing the search string in their name
|
|
GET /scores
Returns aggregated review scores of models.
- Query params
- aggregationFunctionType: (AVG|MIN|MAX)
- minimumNumberOfReviews: int
- shouldOnlyIncludeAboveAverage: boolean
|
|