Assifar-Karim / The-Internet-Chkpt

An homage to the initial Internet Checkpoint that could initially be found on the now deleted Youtube channel TAIA777.

Home Page:https://frontend-service-assifar-karim.cloud.okteto.net/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

The Internet Checkpoint

Description

The Internet Checkpoint is a project which aims to be an homage to the initial Internet Checkpoint that could initially be found on the now deleted Youtube channel TAIA777.

Demo Production Environment

A demonstration of The Internet Checkpoint can be found here.

Installation

The first step towards installing this project on a machine is to clone it using the following command:

git clone git@github.com:Assifar-Karim/The-Internet-Chkpt.git

NOTE: For the application to fully work, locally, modify the application.yml file's database link to a link to a database instance you own either on Mongo Atlas or locally and setup your own google oauth2 configuration and email address

Local Installation

  • Frontend: Go to the Frontend directory and run: npm install
  • Backend: Go to the Backend directory and run: ./mvnw compile

Docker Installation

  • Frontend: Go to the Frontend directory and run: docker build -t ticp-front .
  • Backend: Go to the Backend directory and run: docker build -t ticp-back .

Environment Variables

To run this project, you will need to add the following environment variables to your machine/containers or development environment:

  • MONGO_DB_USERNAME
  • MONGO_DB_PASSWORD
  • JWT_SECRET_KEY
  • MAIL_PASSWORD
  • GOOGLE_CLIENT_SECRET
  • GOOGLE_OAUTH2_CLIENT_ID
  • ENVIRONMENT
  • REDIS_HOST
  • REDIS_PORT
  • CORS_ALLOWED_ORIGIN
  • SERVER_LOCATION

How To Use?

After all the of the preliminary setup is done you can start using hosting the app by following one these 3 methods:

NOTE: For the backend to work a Redis instance needs to be running on your machine. You can either install it locally or through a docker container.

Run It Locally

NOTE: Running the app locally will be through dev mode and the resulting output is not production based

  • Backend: Run the command ./mvnw spring-boot:run
  • Frontend: Run the command npm start

Run It With Docker

  • Backend: Run the following command
docker run -p 8080:8080 --name ticp-backend \
-e MONGO_DB_USERNAME=$MONGO_DB_USERNAME \
-e MONGO_DB_PASSWORD=$MONGO_DB_PASSWORD \
-e JWT_SECRET_KEY=$JWT_SECRET_KEY \
-e MAIL_PASSWORD=$MAIL_PASSWORD \
-e GOOGLE_CLIENT_SECRET=$GOOGLE_CLIENT_SECRET \
-e GOOGLE_OAUTH2_CLIENT_ID=$GOOGLE_OAUTH2_CLIENT_ID \
-e ENVIRONMENT=$ENVIRONMENT \
-e REDIS_HOST=$REDIS_HOST \
-e REDIS_PORT=$REDIS_PORT \
-e CORS_ALLOWED_ORIGIN=$CORS_ALLOWED_ORIGIN \
ticp-back
  • Frontend: Run the following command
docker run -p 80:80 -e SERVER_LOCATION=$SERVER_LOCATION --name ticp-frontend ticp-front

Recommendation: You can also decide to run the app using docker compose by using the docker compose up command.

Run It With Kubernetes

Start by creating a secrets manifest file, called ticp-secret.yml that contains the secrets that are referenced by the backend manifest. Then run the following command:

kubectl apply -f k8s

Tech Stack

  • Client Side: ReactJS
  • Server Side: Spring Boot | Nginx | MongoDB | Redis
  • QA: JUnit 5 | Mockito | Spring Boot Tests
  • Deployment tools: Docker | Kubernetes
  • CI/CD: Circle CI
THE INTERNET CHECKPOINT | TICP TEAM 2022

About

An homage to the initial Internet Checkpoint that could initially be found on the now deleted Youtube channel TAIA777.

https://frontend-service-assifar-karim.cloud.okteto.net/


Languages

Language:Java 67.2%Language:JavaScript 16.1%Language:HTML 12.7%Language:CSS 3.5%Language:Dockerfile 0.5%