Reservly is a tool for reserving game match queue
- Scala
- Play Framework 2
- Slick
- PostgreSQL
- Swagger
- Websockets (Akka actors)
- Asana (Workflow planning)
Frontend repository available here
- Install PostgreSQL
- Create database
- Port: default
- Database name: reservly
- User: postgres
- Password: root
- Database config can be changed in application.conf file
- Install JDK11 (openJDK)
- Install scala support for IntelliJ
- Import project to IntelliJ (as SBT project)
- In IntelliJ: Edit Configurations -> Add New Configuration -> Play
- Use default config (with http://localhost:80)
- Run project with created config
- Swagger docs available at
localhost:80/docs/
- Secured endpoints requests need to contain
Auth-Id
header with existing user id
{
"id": "1s4F", //[String: without whitespaces]
"displayName": "John Smith", //[String: size -> 2 to 100 letters]
"email": "some@email.com", //[String: valid email]
"photoUrl": "www.test.com/1" //[String: size -> 2 to 300 letters]
}
{
"id": "1", //[Long: autogenerated]
"startDate": "2019-01-23T06:00", //[java.sql.Timestamp: start date must be before end date]
"endDate": "2019-01-23T06:15", //[java.sql.Timestamp: end date must be after start date]
"gameName": "FIFA", //[String: size -> 2 to 70 letters]
"playerId": "1" //[String: existing player id]
}
{
"playerId": "11", //[String]
"message": "Some message" //[String: size -> 2 to 250 letters]
}
{
"id": "11", //[Long]
"charRoomId": "id2_id1", //[String: created using alphabetical ordered identifiers players in the conversation, spearated by _]
"receiverId": "id2", //[String: existing player id]
"senderId": "id2", //[String: existing player id]
"message": "Test test", //[String: size -> 2 to 250 letters]
"messageSendDate": "2019-01-01T07:00:00" //[java.sql.Timestamp]
}
{
"httpCode": "404", //[String: one of http codes]
"message": "Not found" //[String]
}