Coder Social home page Coder Social logo

nasaproject's Introduction

Full Stack Node.js Application (Heavily Back End)

TL;DR: What is covered? Pre-exists React front-end code provided. Node.js, Express, MongoDB & mongoose, MVP Pattern, Jest, Supertest, Clusters, Threads, Authentication and Security, CI & CD, Github Actions, Docker, AWS EC2, GraphQL with Express and Apollo, Socket IO (fundamentals), Deno vs Node.js (fundamentals).

WARNING: This is live application which runs on AWS E2 service inside docker image. The reason I don't provide live link it's about can't afford domain on AWS and to not get any charge by AWS.

  • React, node.js, Express, mongoDB, Jest

  • MVP Pattern (Excelent Work to implement MVP Pattern)

  • Client and server folder structure

  • Serving client builded files into serverside and deploying it.

  • CORS topic

  • Testing Back-End APIs

    • JEST
    • SuperTEST
  • using .dotenv for security issue.

  • Handling backend multiple requests.

    • Understanding How Cluster Works
    • Cluster, Multiple Core Process, Logical Proccessors
    • Load Balancing, Horizontal - Vertical Scaling, RoundRobin Approach
    • Cluster Policy in Windows OS.
    • Implementing Cluster via PM2 library.
  • Understanding "Work Threads"

    • Using v8 isolation (new) feature.
    • Differences between cluster.
  • SQL vs NOSQL Topic

    • Making decisions about which approach is best for a particular application.
    • using mongoose to connect mongodb atlas cluster
    • Difference between MVC's Model vs mongoose.model
    • removing all states in memory, applying them with database (mongodb), converting application to be stateless.
    • Adjusting JEST for mongoDB
  • Versioning API (dynamicly)

  • Talking to third libary(spaceX) via Axios To have data for our application

    • Posting Query object to have corresponding data properties.
    • Dealing with relationed data inside mongodb.
    • Covering how to deal with population, selecting properties and more while requesting data.
    • Applying pagination, page, limit for our own api.
  • AUTHENTICATION and SECURITY.

    • HTTPS with SSL and TLS.
    • Understanding Auth 2.0 flow and applying it via passport libary
    • Token Based Authentication vs Cookie Based
    • Cookies, Session, Client Side Session, Server Side Session
    • Using Express Client Side Session package "cookie-session" with passport.
  • Continuous Integration & Continuous Delivery & Continuous Deployment.

    • CI & CD Pipeline
    • Github Actions
    • Building CI Pipeline for "NASA" Project inside Github Actions.
    • CI Test functionality inside Github Actions.
    • Mongodb Integration, Mongodb Test Functionality inside Github Actions.
  • Docker (Containers) & Virtual Machine Topic

    • Creating Container, dockerfile to setup our application on the container.
    • Building Our Own Image hosting it on dockerHub.
    • Serving Docker Image (Our Application) on AWS EC2.
    • Installing Docker Inside AWS EC2 to make online our full-stack application over internet. Now Our application is available to anyone who has internet connection!
  • GraphQL and Apollo

  • Socket.io

    • Polling vs Socket
    • Difference between WebSocket and HTTP
    • Since I have already big project related to socket.io I'm skipping to build additional project for now.
    • Learning fundamentals about socket.io techonology.
  • Deno vs Node.js

    • Learning basics of Deno and why it exists. Difference between node.js.

nasaproject's People

Contributors

karakasenes avatar

Watchers

 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.