Giter Site home page Giter Site logo

natesuri / facebird-api Goto Github PK

View Code? Open in Web Editor NEW

This project forked from needsmorecaramel/facebird-api

0.0 1.0 0.0 266 KB

Facebird -- the newest social media platform

Home Page: https://evening-waters-25240.herokuapp.com/

JavaScript 90.74% Shell 9.26%

facebird-api's Introduction

Facebird -- the newest social media app

Facebird repositories: https://github.com/NeedsMoreCaramel/Facebird-Client https://github.com/NeedsMoreCaramel/Facebird-Api

Links to Facebird deployed sites: Facebird-Client: https://needsmorecaramel.github.io/Facebird-Client/ Facebird-Api: https://evening-waters-25240.herokuapp.com

What is FaceBird ?

FaceBird is a social media single page web app that allows users to make posts and read other user's posts. Users can also delete and update their own post.

How it works

Client

When a user logs in, the app fetches the entire post database and sorts it by creation date so that the user can see the most recent post from other users and also thier own.

The post data is proccessed by handlebars before populating the users feed. The user can then CRUD the database using RESTful AJAX routes. The user can also filter to see only thier own posts.

API

We built the Facebird Api in Express with Mongoose data validation. It receives AJAX requests from the client and communicates with the MongoDB database to return the appropriate response.

The Api requires users to sign up with a unique nickname and email. Posts belong to a user and a user can only edit and delete their own posts.

API Routes

Authentication

Request type Route Action Return if Successful
POST /sign-up Creates a new user 201 / user object
POST /sign-in Checks credentials 201 / user object with token
PATCH /change-password Hashes new password 204
DELETE /sign-out Hashes stored Api Token 204

User Actions

Request type Route Action Return if Successful
INDEX /posts Fetches all posts, sorts by date created (newest first) 200 / all posts
SHOW /posts/:id Fetches single post 200 / one post
POST /posts Creates a new post 201 / created post
PATCH /posts/:id Updates contents of a post (if owned by requesting user) 204
DELETE /posts/:id Deletes a post (if owned by requesting user) 204
INDEX /posts/myPosts Fetches / sorts all posts, then filters for those owned by the requester 200 / all my posts
SHOW /posts/myLatestPost Fetches / sorts all posts, then filters until finds first owned by requester 200 / one post
PATCH /users/:id Updates User nickname 204

Technologies Used (CLIENT):

Client

  • HTML / CSS
  • JavaScript
  • jQuery
  • Ajax
  • Handlebars.js
  • SASS
  • Bootstrap

API

  • JavaScript
  • Express
  • MongoDB
  • Mongoose
  • Node.js

WireFrames and Documentation

Found within /documentation directory inside repo

Planning, process and execution

Planning

During our first day of planning we outlines objectives, assigned roles, discussed workflow, and created MVP documentation, including:

  • User Stories
  • Wireframes
  • ERD
  • Reach Goals
  • Project Management Board

Process

Our teams workflow consisted of a daily standup and retro to keep the project on track and on schedule. To start we pair-programmed building the front-end and back-end infrastructure simultaneously.

All features went through a group code review before being merged into the development branch. When pairs needed to work both within the same repository, we used Git workflow tools to avoid merge conflicts.

Problem Solving

When either of the programming pairs ran into roadblocks, the team would reconvene and work through the issue together.

We would use error driven develpoment to guide us to the resolution and used technology documentation to research similar issues and their solutions.

In the Future

A few features we are looking forward to implementing.

CLIENT

  • reponsive design
  • refactor front-end to use React components
  • further implement style to front-end

API

  • Moment.js

facebird-api's People

Contributors

natesuri avatar xanderj22 avatar

Watchers

James Cloos 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.