Skip to content

Instantly share code, notes, and snippets.

@reccanti
Last active April 20, 2016 04:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save reccanti/9c97341aadf00317b842 to your computer and use it in GitHub Desktop.
Save reccanti/9c97341aadf00317b842 to your computer and use it in GitHub Desktop.
Design Document for Project

#Project Goal The goal of the project is to facilitate drawing as a means of communication. This means that drawings should be able to be made and shared quickly and easily.

--

#Scope

This project WILL:

  1. To provide a tool through which the User can create drawings and share them as easily as possible.
  2. Provide a space where Users can post their drawings.
  3. Allow the User to have complete control over what appears in their space.
  4. Be accessible and work on desktop and mobile devices.

This project WILL NOT:

  1. Allow for the uploading of external images. Drawings will have to be made on the site.
  2. Allow for plain text as a means of communication. Text will only be used when absolutely necessary, such as for usernames and passwords

--

#System Overview On the server, there are two primary pieces of data: Users and Drawings:

  • Drawings contain information about images drawn by a User in the system.
  • Users contain information about individuals who use the system. Users have lists that store their Drawings, and a list of friends that holds other Users.

The client is able to interact with these data types through the following interfaces:

###Creating Drawings

1. Drawing Page

Description: The User uses this page to create a drawing. The User can alter the brush size and choose between the colors "black" and "white".

When they go to submit the drawing, a share menu pops up. This displays a list of social media networks the drawing can be shared on, as well as a list of the User's friends. The User will appear at the top of this list (similar to a Story on Snapchat). The image will be posted to all of the selected User's pages.

Minimum Requirements:

  • The User can draw on a canvas
  • The User can save a drawing
  • The User can share the drawing on the social media sites of their choosing

Stretch Goals:

###Creating Users

2. Registration Page

Description: This page creates a User. If the User is not logged in, this will be the default landing page.

Minimum Requirements:

  • Displays a form where the User can enter a username, and a password
  • Upon submitting this information, the system checks to see if the username is taken:
    • If not taken, create the user
    • If taken, return an error

Stretch Goals:

  • Allow the user to create a profile picture on a mini canvas

3. Login Page

Description: This page allows a user to log in for the session.

Minimum Requirements:

  • Displays a form where the User can enter a username, and a password
  • Upon submitting this information, check it:
    • If the username exists and the password is correct, log them in for the session
    • If the username and/or password is incorrect, return an error

###Displaying Users

4. User Timeline Page

Description: This is a personal drawing page for a User. If logged in, the default landing page for the site will be the User's personal timeline page. It contains a timeline of drawings the User has made, as well as any drawings that have been shared with the User. These are displayed in sequential order.

Minimum Requirements:

  • A timeline loads all drawings that you have made in sequential order
  • Block and remove posts from your timeline.

Stretch Goals:

  • the user can reply to a drawing with another drawing

--

#Timeline

Setup: Weeks 7-8

Goal

Have Development Environment set up.

Deliverables

  • React runs
  • Express runs
  • Communication with Socket.io
  • Gulp + Browserfiy build tools
  • Testing with Jest
  • TravisCI

Database: Spring Break

Goal

Enter Users into the system

Deliverables

  • Store Data in MongoDB database
  • Image Data Structure
  • User Data Structure
  • Register Users in Database
  • Basic Register + Login Page

User Wall: Week 9-11

Goal

User can draw an image and post it to their wall

Deliverables

  • Canvas React Component
  • Timeline React Component
  • Timeline fetches Images and displays them sequentially

Sharing

Goal

The User will be able to share their drawings on various social media platforms

Deliverables

  • Users can share their drawings on (potentially) facebook, twitter, instagram, messenger, tumblr, imgur
  • Users can download/copy the image

###Presentation Phase: Weeks 15-16

Goal

Describe a system for content moderation and community management on a social media platform

####Deliverables

  • Write-up of my research
  • Presentation Slides
  • Last-minute tweaks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment