Skip to content

Frontend Overview

James edited this page Mar 8, 2022 · 5 revisions

Overview

We have decided to use mobile first design for this project, so we will start with a design that is optimized for mobile phones. Link to Figma: https://www.figma.com/file/nzmwMJRLfTZ84UFRXk0GuQ/Untitled?node-id=0%3A1

How to run the front end as a dev

You need to clone the repository, then you should install dependencies by running npm i inside BOTH the root ("/") directory, and the frontend directory ("/frontend").

Then, you can run npm run start to launch the front end. It should automatically open a browser, if it doesn't then you need to check the console to see the address it is running on and go to that.

IMPORTANT: The initial design phase is for MOBILE DESIGN, so viewing it in full size is not optimal. You need to open the console with F12 and find a button that looks like this (chrome, firefox pictured). You can also press CTRL + SHIFT + M

image image

Pages

  • Dashboard
  • Landing Page / registration / login
  • View post + comments
  • Notifications
  • Follows / Followers
  • Profile
  • Profile Settings
  • (Header + Bottom Nav)

Landing (Michael,Ziming)

The landing page is the page any visitor will see if they are not logged in. It is up to the designer if they want to include any sign up/in form on the landing page instead of a subpage.

It will contain:

  • Some hero text to say what the app is
  • A sign in button
  • A sign up button

The sign up and sign in pages are considered as subpages for this section and will just contain some form.

View Post + Comments (James)

Link to Design

When a user clicks on a post, they will be sent to the post view, where they can see the comments of posts. Each reply to a post is also a post that can be clicked on which will open its own post view

Posts on the dashboard, user profile, post view, and posts replies can all share the same component:

A post contains:

  • Simple User Details: The users nickname, username and profile picture. This component will be reused a lot in other pages. Clicking on the users name or profile pic will take you to their profile
  • Text content (images/videos planned)
  • Interaction counters/icons (likes, replies, shares). Clicking on the interaction icon will start some new interaction
  • If a post is NOT a selected post, the component should be more condensed. This will be true for posts: on the dashboard, on a users profile, that are replies to some main post

Header + Bottom Nav (Aaron, Andy)

Header Holds the app logo, and the current logged in user

  • User Icon: Pressing should take you to your user page (unless the designer wants to have it open some side menu with more options)
  • App Logo: Pressing should take user home

Footer Contains the navigation buttons for the app.

It should at least have the following links/icons:

  • Home
  • Search
  • Notifications

Follows (Brendon)

Show the list of users a person follows, and a list of users who follow that person, is navigated to from a user profile

Contains:

  • A simple header with a back button and label
  • Some buttons at the top to swap between followers and follows
  • A list of users. Each user should be a simple user details. Optionally, a follow button could be added on each user so you can easily follow them (or if already followed, show that detail)

Dashboard(Mark, Henry)

A users feed

Contains:

  • A list of posts from the users followers (posts will be shown in condensed form, see posts component for more details)
  • A button to start making a post (this can either be present everywhere or as some dedicated button on the dashboard, designers choice)

The post composer is grouped with this component. It should contain:

  • The users profile picture
  • A text input
  • If images/video support is added, a button to add an attachment
  • A button to send the post

Notifications(Bill)

Shows all recent interactions for your posts

Types of interactions:

  • Likes on your post. (If there are multiple likes in a row on the same post, they should be combined into one notification with the total number of likes)
  • Replies to your post. Should show the reply as a condensed post
  • Someone follows you. Should show their profile picture and name
  • Shares. Should show your post (and clicking on it should take you there), and have it work similarly to the consecutive likes above

Each of these can be a separate component, up to the designer

Profile (Bruce)

A users profile details and posts

Contains:

  • Profile picture
  • Profile banner
  • A header with a back button and search icon
  • Username + Nickname
  • User biography
  • Date Joined
  • Following/Followers Count
  • List of posts (includes posts they shared)
  • If the user is browsing their own profile, there should be a button to edit it
  • If the user is browsing another profile, there should be a button to follow

Profile Settings (Jack C)

Where a user can change their own profile's details

It should show:

  • A header or footer with a cancel and save button
  • The profile banner and photo (clicking them should prompt a photo selector)
  • A list of profile details as a form (nickname, username, bio) and there should be form validation
Clone this wiki locally