You are on page 1of 2

Front

Contoller

Actor

View template
(JSP)

@Controller CreateAccountController  @Controller LogInController @Controller CalendarController @Controller BookDateController @Controller AddFriend


userService: UserService userService: UserService + calendarService: CalendarService + bookDateRepository: BookDateRepository
- email: String + friendsService: FriendsService
- name: String + eventService: EventService
- email: String - password: String
- password: string
+ addEvent(startDate:Date, endDate: Date, description: String) + findDate(friends: list<User>, minTime: Long, from: Date, to:Date): events: list<Event> + addFriend(email: String)
+ logIn(email: String, password: String) + addDate(friends: list<User>, minTime: Long, from: Date, to:Date) + bookDate(title: String, description: String, friends: list<User>, startDate: Date, endDate: Date) + delateFriend(friendID: Long)
+ removeEvent(id: Long)
+ createAccount(email: String, name: String, password: String)
+ changeEvent(id: Long) 

@Service UserService

- userRepository: UserRepository
@Service CalendarService @Service EventService @Service FriendsService

calendarRepository: CalendarRepository eventRepository: EventRepository eventRepository: EventRepository

+ doseEmailExist(email: String): User


+ isPasswordStrong(password: String): Boolean + findUser(calendar: Calendar): User + doesFriendExist(userID: Long): Boolean
+ createEvent(calendarID, startDate, endDate, description: String)
+ authenticate(email: String, password: String):  Boolean + alreadyFriends(user:User, friend:User): Boolean
+ changeEvent(calendarID, startDate, endDate, description: String)
+ createUser(email: String, name:String, password: String) + addFriend(userID: Long) 
+ deleteFriend(userID: Long)

<<interface>> UserRepository
<<interface>> CalendarRepository
<<interface>> FriendsRepository
+ findByEmail(email: String): User <<interface>> EventRepository
+ saveUser(user: User): Boolean + findByUser(user:User): Calendar
+ findByName(name: String):User + saveFriend(friend:User): boolean
+ saveEvent(event:Event): boolean
+ delateFriend(userID: Long): boolean
+ delateEvent(eventID: Long): boolean
+ findFriend(userID: Long): User
+ findEvent(eventID: Long): Event

@Entity User @Entity Calendar @Entity Event

- name: String - events: list<Event> - title: String


- email: String - calendarID: Long - description: String
- password: String - userID: Long - startDate: Date
- userID: Long - endDate: Date
- eventID: Long
- calendarID: Long
- calendarID: Long
DB
- friends: list<User> 
- calendar: Calendar + Calendar(events: list<Event>, calendarID: Long, userID: Long)
[getters & setters]

+ User(email: String, name: String, password: String, userID: Long, friends: list<User>, calendar: Calendar) + Event(title: String, description: String, startDate: Date, endDate: Date, eventID: Long, calendarID: Long)
[getters & setters] [getters & setters]

You might also like