Giter Club home page Giter Club logo

untappd-compare's Introduction

Untappd Compare

Untappd Compare is an app that allows you to compare mutual ratings between two users of Untappd, a craft beer rating app. The ratings are fetched via Untappd API.

After registering as a user and logging in, the app allows you to:

  • request and view a comparison
  • view all comparisons
  • view all of your comparisons
  • save comparisons to your account

Technology

Untappd Compare was my first app built with Node.js & Express. It uses MongoDB as a database and was deployed to AWS EC2 and linked with the domain.

The app has two parts:

  • backend API that returns JSONs
  • simple server side rendered front-end

During this project I purposefully tried to stick to low level implementations (i.e. avoiding templating) in order to understand better how things work without some of the abstractions.

Since this was a primarily backend focused project, there is no styling.

Learnings

  • Node.js and Express (i.e. routing, middelware, error handling)
  • MongoDB & Mongoose (i.e. setting up DB, defining models, accessing and writing to DB with Mongoose)
  • Architecture based on models, controllers, services and utilities/helpers
  • Authorization and authentication with bcrypt and JSON Web Tokens with tokens stored in cookies (not ideal)
  • Setting up environment variables with dotenv
  • Backend API routes returning JSON
  • Server side rendered front-end with routes returning HTML files and HTML strings
  • Conditionally rendering HTML elements with JS (i.e. Register & Login vs Logout or "Save Comparison" vs "You already saved this comparison")
  • Automatically savings all new comparison requests to DB (after request, the route checks if such comparison already exists in DB - if yes, it fetches it from the DB and if not, it fetches it from Untappd API and saves to DB)
  • Submit requests with HTML forms, VSCode REST Client and Postman
  • Deploying to AWS EC2 instance (including DB)
  • Connecting the deployed app to a domain

To Do's

  • Implement refresh tokens

untappd-compare's People

Contributors

pawel-cebula avatar

Watchers

Max Stralka avatar  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.