Architecture / 4+1 / View 02

/ARCHITECTURE /LOGICAL VIEW

The Logical View describes what Intaliq does for users and coaches. It breaks the system into the domain abstractions from the SRS data dictionary (users, coaches, sessions, goals, activities and partners) and the relationships behind booking, admission, goal tracking and partner matching.

Stakeholders: Analysts, Designers Concern: Functionality
CLASS_DIAGRAM.UML
Intaliq class diagram: Session, User, Coach, Goal, Partner and Activity
FIG 1.0 Static structure of Intaliq: User, Coach, Session, Goal, Activity and Partner with their attributes, operations and relationships.

Sequence Diagrams

LOG_ACTIVITY.UML
Sequence diagram: Logging an Activity
FIG 2.1 Logging an Activity — The user opens the app, logs in, picks an activity and a duration; Intaliq saves the activity data and sends a confirmation.
SET_GOAL.UML
Sequence diagram: Setting an Activity Goal
FIG 2.2 Setting an Activity Goal — The user opens the Goals tab, selects a running, cycling or hiking goal, then specifies time period, calories and deadline before saving.
BOOK_SESSION.UML
Sequence diagram: Booking a Group Session
FIG 2.3 Booking a Group Session — The user views the available sessions, selects a time, reviews the session information and books it, then receives a confirmation message.
CREATE_SESSION.UML
Sequence diagram: Creating a Group Session
FIG 2.4 Creating a Group Session — The coach opens the session creation form and enters date, time, location, capacity and intensity before submitting.
ADMIT_MEMBERS.UML
Sequence diagram: Admitting Members
FIG 2.5 Admitting Members — The coach checks each request against the user goals and activity level, then accepts or declines, and the admitted user data is updated.

Key Abstractions

User «Entity»

A registered participant. Holds contact and login details; name lengths, Saudi (+966 5X-XXX-XXXX) or international phone format, email and password strength are validated.

- firstName: String - lastName: String - phoneNumber: String - email: String - password: String
Coach «Entity»

A fitness coach who creates and manages group sessions. Has the same identity data and validation rules as User.

- firstName: String - lastName: String - phoneNumber: String - email: String - password: String
Session «Entity»

An outdoor group session created by a coach. Date must be DD/MM/YYYY and realistic, time is 24-hour, location must be in Saudi Arabia, capacity must be more than 1.

- date: String - time: String - location: String - capacity: int - intensity: Beginner | Intermediate | Advanced
Goal «Entity»

A personal target set by a user for one of the three supported activities. Deadline cannot be in the past, and calories must be more than 10 kcal.

- type: Hiking | Biking | Running - targetTime: HH:MM - caloriesBurnt: String - deadline: String
Activity «Entity»

A logged workout. Duration must be at least 5 minutes and no more than a day.

- type: Hiking | Biking | Running - duration: String
Partner «Entity»

A suggested fitness partner, matched by location, goals and activities, that a user can send a connection request to.

- location: String - goals: String - activities: String

Attributes and constraints: Intaliq SRS Section 4.2 Data Dictionary

Relationships

Source Relationship Target Multiplicity
Coach Association (creates) Session 1 .. *
User Association (requests to join) Session * .. *
User Association (sets) Goal 1 .. *
User Association (logs) Activity 1 .. *
User Association (connects with) Partner * .. *