Skip to content

suttondemlong/Thought-Vomit

Repository files navigation

Thought-Vomit

Deployed Site

Table of Contents


Overview

Thought Vomit Is a writing tool for generating ideas without getting tripped up by one's ego or self-consciousness. Thought Vomit offers the opportunity to create free-association, stream of consciousness writings while simulating the technique of blind contour drawing. The user is presented with a text field, but all of the characters typed in this area will be obscured by hash marks. When finished, they can choose to discard what they've written immediately or save for future polishing. They will also have the option to categorize the vomit's mood for better organization. The moods include:

  • Humor
  • Joy
  • Fury
  • Musing
  • Melancholy

MVP

The Minimum Viable Product should be a well-planned, easily-communicated product, ensuring that the client's deliverable will be achievable and meet specifications within the time frame estimated.

The Thought Vomit MVP will have the concept of a user with secure login functionality. The user will be able to create and save Thought Vomits to their account, edit them and delete them. When typing in the initial thought creation text-area, text will be obscured as the user types.


Goals

  • The landing page with text field will be available before sign in, but will prompt sign in/register once the user chooses to save (if not already logged in)
  • User login will require secure password authentication
  • Text will be obscured upon typing
  • Design will be clean and easy to navigate. A pleasure to use.
  • Vomit edit option will allow for formatting (i.e. bullet points, etc).
  • Vomits will be categorized by mood

Libraries and Dependencies

Use this section to list all supporting libraries and dependencies, and their role in the project. Below is an example - this needs to be replaced!

Library Description
React Front end development.
React Router App navigation.
TinyMCE Text editor/WYSIWIG.
Rails Backend server development

Client (Front End)

Wireframes

Wireframes

Assets: background img

Subtitle font options: Changa Color: 3C3A8D

Title font options: Special Elite Color: 368C44

Main font options: IBM Plex Mono

Component Tree

Component Tree

Component Hierarchy

Use this section to define your React components and the data architecture of your app. This should be a reflection of how you expect your directory/file tree to look like.


src
|__ components/
      |__ Header.jsx
|__ containers/
      |__ MainContainer.jsx
|__ layouts/
      |__ Layout.jsx
|__ screens/
      |__ About.jsx
      |__ Login.jsx
      |__ Register.jsx
      |__ ThoughtCreate.jsx
      |__ ThoughtDetail.jsx
      |__ ThoughtEdit.jsx
      |__ Thoughts.jsx
|__ services/
      |__ apiConfig.js
      |__ auth.js
      |__ moods.js
      |__ thoughts.js

Time Estimates

Use this section to estimate the time necessary to build out each of the components you've described above.

Task Priority Estimated Time Time Invested Actual Time
Ruby models and controllers H 4 hrs 4 hrs TBD
Ruby migration and seed data H 4 hrs 6 hrs TBD
Create services, layout H 3 hrs 1 hrs TBD
Build out ThoughtCreate H 2 hrs 4 hrs TBD
Login/Auth H 4 hrs 4 hrs TBD
Thoughts, ThoughtDetail, Thought Edit H 8 hrs 10 hrs TBD
About Page H 4 hrs 2 hrs TBD
CSS H 8 hrs 8 hrs TBD
TOTAL 37 hrs 39 hrs TBD

Server (Back End)

ERD Model

ERD



Post-MVP

Post-MVP goals would be a public, anonymous space for users to publish their "thoughts". Another, more achievable option would be to organize the "thoughts" dashboard by mood, chronologically.


Code Showcase

return (
    <div className='header-container'>
      <Link to='/' className="title" id="page-title">Thought Vomit</Link>
      <div className='navBar'>
        <Link className='navLink' to='/about'>What is this?</Link>
        {
          currentUser ?
          <Link className='navLink' to='/thoughts'>Thoughts</Link> :
          <Link className='navLink' to='/login'>Thoughts</Link>
        }
        {
          currentUser ?
            <Link className='navLink' to='/' onClick={handleLogout}>Logout</Link>
            :
            <Link className='navLink' to='/login'>Login</Link>
        }
      </div>
    </div>
  );

Code Issues & Resolutions

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published