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
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.
- 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
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 |
Assets: background img
Subtitle font options: Changa Color: 3C3A8D
Title font options: Special Elite Color: 368C44
Main font options: IBM Plex Mono
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
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 |
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.
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>
);