Skip to content

Latest commit

 

History

History
63 lines (43 loc) · 2.79 KB

README.md

File metadata and controls

63 lines (43 loc) · 2.79 KB

Anoninja :octocat:

Inspired by Telegraph, this app allows users ninjas to write down their thoughts whilst remaining anonymous.

Posts are stored in a MongoDB database and can be accessed through an API. This app was created by @cwesterduin and @roselynle as part of Futureproof's Coding Challenge.

Installation

  • Clone or download this repo

Usage

  • Open your terminal/CLI and navigate to the anoninja folder
  • Ensure docker desktop app is running
  • Run docker-compose up to start the API and DB services
    • Access: client on localhost:8080/ and server on localhost:3000/
  • Run docker-compose down to stop the services and keep data
  • Run docker-compose --volumes --remove-orphans to stop the services and remove all artifacts

Technologies

  • HTML, CSS and JavaScript
    • Dependencies include: express, cors, nodemon, mongoDB, watchify, concurrently
  • Test suite: Jest

Process

  • Split the team into into two with one person focusing on client side and the other on server side
  • Looked at the design/layout of Telegraph for inspiration on the user interface
  • Made use of the GitHub project board to keep on top of required tasks
  • Set up the database using MongoDB
  • Implemented the required functionalities, and debugged any issues
  • Added styling

Task Requirements

  • The app should have a browser client allowing users to write a post with a title, a pseudonym and a body
  • No login should be required to create a post or visit a post
  • When a user hits 'publish', the post should be stored in a database and the client redirected to a show path
  • The user should be able to access their post using that show path even after a server restart
  • Edit and delete functionality is not required

Wins & Challenges

Wins

  • Achieved a minimum viable product that met the task requirements - user is able to create a post and be redirected to their new post
  • Connected API to database, and improved our knowledge and understanding of MongoDB
  • Managed to containerise our app using Docker
  • Successfully connected server to client
  • Good git flow - appropriate division of tasks and no issues with conflicts

Challenges

  • Not having enough time to perform (optional) unit/integration. However these can be done at a later date.
  • Not knowing how to send the id from the server back to the client to redirect users to their new post. This was later solved by checking the MongoDB documentation
  • Getting errors for sending new posts - this was due to errors in the create post function in the model

Bugs

  • Should display an error if no post is found from the url