TQCheung / LinkedIn-Clone

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Linkedin Clone

A fake LinkedIn

Click here to live preview.

Tech stacks

  • JavaScript
  • React.js
  • Styled Components
  • Material-UI
  • Redux
  • Redux-Thunk
  • React Icons
  • React Router
  • Redux DevTools Extension
  • Moment.js
  • JSON Web Token
  • Express
  • Redis
  • MongoDB (Mongoose ODM)
  • Docker
  • AWS S3, ECR, ECS, Fargate

Environment Setup

Setup MongoDB Atlas

Download and install Redis

Create a free AWS account and create a S3 bucket

Download and install Docker

Starting Development Environment

  1. Under config file, add a file named default.json and input your configurations and secret keys

    {
        "mongo_URI": ""
        "jwtSecret": ""
        "githubToken": ""
        "AWSAccessKeyId": "" 
        "AWSSecretKey": ""
        "S3_BUCKET_NAME": ""
        "defaultAvatar": ""
        "defaultBackgroundMedia": "" 
        "signedUrlExpireSeconds": ""
        "NEWS_API_KEY": ""
    }
    
  2. Run npm install

  3. Run cd client and Run npm install

  4. Run cd .. and Run npm run dev and access http://localhost:3000.

Deployment

  1. Run npm run docker-build
  2. Push images to Amazon ECR
  3. Create ECS cluster
  4. Create a Task Definition and set configuration
  5. Whitelist addresses in your Amazon S3, MongoDB, and edit inbound rules in your AWS Security Groups

App Architecture

  1. root folder contains the backend APIs built by express
  2. client folder contains the frontend pages built by react

About


Languages

Language:JavaScript 99.8%Language:HTML 0.2%