#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:
- To provide a tool through which the User can create drawings and share them as easily as possible.
- Provide a space where Users can post their drawings.
- Allow the User to have complete control over what appears in their space.
- Be accessible and work on desktop and mobile devices.
This project WILL NOT:
- Allow for the uploading of external images. Drawings will have to be made on the site.
- 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
Have Development Environment set up.
- React runs
- Express runs
- Communication with Socket.io
- Gulp + Browserfiy build tools
- Testing with Jest
- TravisCI
Enter Users into the system
- Store Data in MongoDB database
- Image Data Structure
- User Data Structure
- Register Users in Database
- Basic Register + Login Page
User can draw an image and post it to their wall
- Canvas React Component
- Timeline React Component
- Timeline fetches Images and displays them sequentially
The User will be able to share their drawings on various social media platforms
- Users can share their drawings on (potentially) facebook, twitter, instagram, messenger, tumblr, imgur
- Users can download/copy the image
###Presentation Phase: Weeks 15-16
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