Git Product home page Git Product logo

roselynle / anoninja Goto Github PK

View Code? Open in Web Editor NEW
3.0 1.0 0.0 2.59 MB

An app that allows users to make anonymous posts, inspired by https://telegra.ph/. Client side was built using HTML, CSS and JavaScript and Express.js was used for side. Docker was also used to containerise the app.

JavaScript 80.27% HTML 5.62% CSS 14.11%
express cors nodemon anonymous-posts html-css-javascript mongodb watchify concurrently jest database

anoninja's Introduction

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

anoninja's People

Contributors

cwesterduin avatar roselynle avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

anoninja's Issues

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.