Inquiry: Application design

User stories

Based on the requirements we collected in the previous blog, we can move to create some user stories:

  • User logs their mood, then their action, then add a subject with location
  • User logs their mood, a suggestion list appears on what actions the user did previously with this mood
  • User can view their past entries
  • User can add a note to each log entry

Screens

Now that we know what we want the user to be able to do within the app, let’s design the screens available within the app, our goal for each screen is to cover a user story.

Onboarding

User will go through this screen when they first log into the application. The goal of this screen is to act as a soft landing page explaining the application.

Figure 1: Application landing page

Home page

User can use the home page to view their 5 most recent entries and add a new log entry.

Figure 2: Home page

Mood suggestion/logging page

This page would be the bulk of the application funcitonality, as we will dynamically show the user the suggested actions while collecting their log:

Figure 3: Mood suggest screen

Data requirements

Now that we’ve decided on the screens and user stories, the last item on my list is what the data we’re collecting from the user look like.

I want to collect the following data:

  • Logs entries: User mood, action, subject, location, reflection
  • Relationships between mood and action
  • Relationships between action, subject and location

With that, I can design my data to consist of the following tables:

Moods Table
  • mood: Different mood states (e.g., “Happy”, “Sad”) with a uniqueness constraint
Actions Table
  • moodId: Reference to a specific mood from the moods table
  • action: Specific activities (e.g., “Exercise”, “Read”) with a uniqueness constraint
  • reason: Optional explanation for why this action is associated with the mood
Subjects Table
  • actionId: Reference to a specific action from the actions table
  • name: Entities involved in the action (e.g., “Dog”, “Book”) with a uniqueness constraint
  • locationId: Optional reference to a location
Locations Table
  • actionId: Reference to a specific action from the actions table
  • subjectId: Optional reference to a subject
  • name: Places where actions occur (e.g., “Home”, “Park”) with a uniqueness constraint
  • latitude: Geographic coordinate
  • longitude: Geographic coordinate
Logs Table
  • note: Optional text description or comment
  • ratings: Numeric rating value
  • moodId: Reference to a specific mood
  • actionId: Reference to a specific action
  • subjectId: Optional reference to a specific subject
  • locationId: Optional reference to a specific location

Now that I have the screens needed and the format of the data, I can move forward with development! I’ll be integrating Claude AI and Cursor IDE (AI-powered editor), and document their uses in my development steps.


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *