Giter Site home page Giter Site logo

journal_project_backend's Introduction

๐Ÿ–ฅ Journal Project Backend

Project made as a week-long group project by the students of the FutureProof Bootcamp (Auguste cohort) on LAP 1.

Description

This is the backend server and database (a simple json file) for the project located at this link. The server can accept different types of requests:

REQUEST TYPE ENDPOINT REQUEST BODY STRUCTURE RESPONSE USE
GET / empty String Send a Text String
GET /posts empty All Posts and comments First load
GET /posts/:id id of Post as queryString Body of the requestedPost with its comments When clicking on a post to view its content
POST /posts JSON with properties of 'bitle', 'body' and 'link' (for the giphy) all as Strings All Posts and comments When adding a new Post
DELETE /posts id of Post as JSON All Posts and comments When deleting a Post
POST /posts/comments JSON object with two properties: 'post' and 'comment' The Post and its comments When adding a Comment
POST /posts/emojis JSON Object with two properties: 'post' and 'emoji' All Posts and comments When clicking on an emoji icon
PATCH /posts JSON Object with two properties: 'post' and 'newData' All the Posts and comments When updating a previous Post

๐Ÿ’พ Deployment

The application has been deployed on Heroku at this link.

๐ŸŽฎ Installation & usage

Locally:

npm install
npm start

Use with the front end client available at this link.

In the cloud:

  1. Use the frontend app located at this link
  2. Use a service like Hoppscotch

๐Ÿ“Ÿ Technologies

  1. NodeJS : javascript runtime
  2. ExpressJS : framework for nodejs that has been used to create the webserver
  3. Jest: test runner
  4. Supertest: to test HTTP Responses
  5. UUID: to generate Universally Unique IDentifiers used for the id of both Posts and Comments
  6. Hoppscotch: an online service used to manually test the routes
  7. Zoom: to make the daily standups
  8. Slack: to communicate with the team members

๐Ÿค” Process

Developed routes and testings separately with frequent catch up to help each other. Used:

  • independent programming
  • pair-programming
  • (remote) mob-programming.

๐Ÿชช Licence

ISC

From Wikipedia:

  • The ISC license is a permissive free software license published by the Internet Software Consortium, now called Internet Systems Consortium (ISC). It is functionally equivalent to the simplified BSD and MIT licenses, but without language deemed unnecessary following the Berne Convention

๐Ÿ† WINS

  • The server is working
  • Getting excellent Coverage for tests
  • Handling multiple errors with quite a bit of validation
  • Cooperation has worked great
  • Backend and Frontend communicate flawlessly
  • Few merge conflicts as we agreed on when to push and merge beforehand and also worked on separate branches

๐Ÿ˜ซ Challenges

  • Using Heroku as a team instead of a single developer
  • Covering so many tests and cases
  • Plan how to implement the features and how to send/receive data between frontend and backend

journal_project_backend's People

Contributors

buscaroli avatar nadirkhan98 avatar xargon666 avatar

Stargazers

Tom Millington avatar

Watchers

 avatar

Forkers

buscaroli

journal_project_backend's Issues

Remove posts with missing key data

Should we come up with some way to handle these? client-side could have something: if the post exists with no body then remove it. Or we could just make it impossible to create them.

Server: Duplicate Posts

It is possible to create multiple copies of the same post. Each time the submit button is pressed, I believe an empty object is sent. The object seems to be persistent, and once a post is sent with the correct criteria, multiple copies are somehow created; the empty objects are all populated with the new post data.

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.