GithubHelp home page GithubHelp logo

indianakuffer / buoy Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 600 KB

Buoy is a social app that encourages users to be empathetic and open about their emotions while removing the showmanship and clout present in many online spaces.

Home Page: https://buoy.netlify.app/

Ruby 40.57% HTML 1.70% JavaScript 57.34% CSS 0.40%

buoy's Introduction

Buoy

buoy.netlify.app


Overview

Buoy is a social app that encourages users to be empathetic and open about their emotions while removing the showmanship and clout present in many online spaces. Users journal their thoughts and anonymously cast them out to 'sea' for others to view. Users can choose the color of their thought to represent how they're feeling, and give their thought helpful tags. While at sea, a user can watch the anonymous thoughts of others drift by based on color, tag, or location.


MVP

The Buoy MVP will provide frontend user account creation, deletion, and updating. Users will be able to write, view, and delete thoughts, with a separate screen for viewing the thoughts of others. User account information, thoughts, colors, and tags will be stored on a Ruby on Rails backend.


Goals

  • Ruby on Rails backend for storing user info, thought info, colors, tags, and likes.
  • Frontend user account management (CRUD).
  • User can create, customize, and delete thoughts (CRD).
  • Screen showing thoughts of other users.

Challenges

  • Buoy's data requires more complex relationships than I've made before.
  • Creating a strong visual design.
  • Implementing location for thoughts, and filtering sea of thoughts based on user location.

Libraries and Dependencies

Library Description
Rails Web app framework used for the restful API backend.
Rack-Cors Cross-Origin Resource Sharing support for Rails.
Pry-Rails Replace Rails console default IRB with Pry.
React Frontend framework.
Axios Promise based HTTP client for the browser and Node.js.
React Router Routing for frontend.
Styled Components Styling management for React components.
React Spring Physics-based animation library for React.
d3-ease Easing curves for animation tweaking.

Client (Front End)

Wireframes

Full Wireframe

Buoy - Full

Landing

Buoy - Landing

Login

Buoy - Login

Register

Buoy - Register

Account Details

Buoy - Account Details

Account Edit

Buoy - Account Edit

Create Thought

Buoy - Create Thought

Thoughts

Buoy - Thoughts

Sea

Buoy - Sea

Full Album


Component Tree

Component Tree

Dashed lines indicate shared components


Component Hierarchy


src
|__ App.jsx
|__ screens/
      |__ Landing.jsx
      |__ Login.jsx
      |__ Register.jsx
      |__ AccountDetails.jsx
      |__ AccountEdit.jsx
      |__ CreateThought.jsx
      |__ Thoughts.jsx
      |__ Sea.jsx
|__ components/
      |__ Header.jsx
      |__ Nav.jsx
      |__ NavMenu.jsx
      |__ SearchBar.jsx
      |__ shared/
            |__ Button.jsx
            |__ Input.jsx
            |__ ProfilePic.jsx
            |__ Popup.jsx
            |__ ThoughtListing.jsx
|__ services/
      |__ api-config.js
      |__ auth.js
      |__ users.js
      |__ thoughts.js
      |__ likes.js
      |__ tags.js
      |__ colors.js


Component Breakdown

All components are functional components.

Component state props Description
App y n Renders the Header and handles routing. Keeps state for UserInfo and UserThoughts.
Landing n y Splash page pre-login/registration. Does not show if site visited with valid JWT.
Login y y Form for logging in. Redirects to Sea upon successful login.
Register y y Form for registration. Redirects to CreateThought on successful registration.
AccountDetails n y Shows basic account info with link to AccountEdit and button for account deletion.
AccountEdit y y Form for updating account info.
CreateThought y y Form for creating new thoughts. Adds to UserThoughts state of App.
Thoughts n y Shows reverse-chronological list of user's thoughts. Ability to delete thoughts. Pulls info from UserThoughts state of App.
Sea y y Shows a feed of user thoughts, filterable by color, location, and tag.
Header n y Header renders Nav, NavMenu, and SearchBar when needed.
Nav y y Render user icon and login/register/logout links..
NavMenu n y Links for navigating Buoy.
Button n y Shared button with props for onClick, Link, color, content, etc.
Input n y Shared input with props for name, type, placeholder, etc.
ProfilePic n y Shared icon displays user icon from UserInfo state of App.
Popup n y Shared popup for user alerts with props for content, color, button, etc.
ThoughtListing n y Shared component for showing a thought with props for thought content, info, etc.

Time Estimates

Task Priority Estimated Time Time Invested Actual Time
Backend
Initialize Rails H 0.5 hrs 0.25 hrs TBD
Install Dependencies H 0.5 hrs 0.25 hrs TBD
Scaffold Tables H 0.5 hrs 0.25 hrs TBD
Assign References H 0.5 hrs 0.25 hrs TBD
Assign Validations H 0.5 hrs 0.25 hrs TBD
Set Up Auth H 1.0 hrs 0.25 hrs TBD
Set Up Routes H 0.5 hrs 1.0 hrs TBD
Configure Controllers H 0.5 hrs 1.0 hrs TBD
Rails Testing / Fixes M 2.0 hrs 1.0 hrs TBD
Frontend
Initialize React App H 0.5 hrs 0.12 hrs TBD
Install Dependencies H 0.5 hrs 0.12 hrs TBD
Remove React Fluff L 0.5 hrs 0.12 hrs TBD
Set Up File Directory H 0.5 hrs 0.12 hrs TBD
Set Up Screen Routing H 0.5 hrs 0.12 hrs TBD
Set Up Services and Auth H 1.0 hrs 0.5 hrs TBD
Set Up Component Shells H 3.0 hrs 0.12 hrs TBD
Initial Styling M 3.0 hrs 3.25 hrs TBD
Shared Comps M 6.0 hrs 5.5 hrs TBD
Login / Register Comps H 2.0 hrs 1 hrs TBD
AccountDetails / Edit Comps H 2.0 hrs 1.5 hrs TBD
CreateThought Comp H 2.0 hrs 1.5 hrs TBD
Thoughts Comp H 2.0 hrs 1.5 hrs TBD
Sea Comp H 4.0 hrs 3.5 hrs TBD
Advanced / Mobile Styling H 8.0 hrs 9.5 hrs TBD
Extra H 5.0 hrs 7.0 hrs TBD
TOTAL 47.0 hrs 40.25 hrs TBD

Server (Back End)

ERD Model

Buoy ERD


API Endpoint Documentation

/users - index, post
/users/:id - show, put, destroy
/thoughts - index, post
  queries: color, tag
/thoughts/:id - show, destroy
/colors - index, post
/colors/:id - show, put, destroy
/tags - index, post
/tags/:id - show, put, destroy
/likes - index, post
/likes/:id - show, destroy
/profile_pics - index
/profile_pics/:id - show

Post-MVP

  • Plug for github and portfolio.
  • Screen transitions.
  • Background animations.
  • Loading indicator.
  • Sea gentle auto-scroll, user can rewind or fast-forward.
  • Thoughts searchable by content in addition to tags.
  • Thought location storing and filtering.
  • Email verification.
  • Forgot password feature.

Code Showcase

Coming soon.

Code Issues & Resolutions

A of all major issues encountered and their resolution.

buoy's People

Contributors

indianakuffer avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.