Spring Boot project including Spring REST, HATEOAS, JPA, etc. Additional details: HELP.md
For ... who want to ... the project ... is an ... that allows ... Unlike other ...
USER | ADMIN | STUDENT | OWNER |
---|---|---|---|
Register Student | Delete advertisements | List Advertisements | Register Apartment (and rooms) |
Register Owner | Block user | Find Advertisement | Publish Advertisement |
Login | Delete User | Request Visit | List Owned Apartments |
Logout | Filter advertisement | List Own Advertisements | |
View profile | Cancel Visit | Accept Visit | |
Edit profile | Review Advertisement | Reject Visit | |
View Visit Status |
classDiagram
class UriEntity {
String uri
}
UriEntity <|-- Property
UriEntity <|-- ApartmentDetails
UriEntity <|-- Advertisement
UriEntity <|-- Visit
UriEntity <|-- Review
UriEntity <|-- User
class UserDetails { <<interface>> }
class User {
String username
String password
String email
}
UserDetails <|.. User
User <|-- Admin
User <|-- Student
User <|-- Owner
class Student {
String phoneNumber
String name
}
class Property {
String description
}
Property <|-- Apartment
Property <|-- Room
class Apartment {
String street
String number
String city
}
Owner "1" --> "*" Apartment : owner
Apartment "1" <-- "1" ApartmentDetails : details
Apartment "1" <-- "*" Room : in
class ApartmentDetails {
Float square
Integer numBathrooms
Integer numBedrooms
Boolean hasAC
Boolean hasElevator
}
class Advertisement {
String title
String description
Double price
}
Property "1" <-- "*" Advertisement : about
class Visit {
ZonedDateTime when
}
Advertisement "1" <-- "*" Visit : for
Student "1" <-- "*" Visit : visitor
class Review {
String title
String description
Double rating
}
Advertisement "1" <-- "*" Review : about