Skip to content

szabodorka/netscore-aws

Repository files navigation


Logo

NetScore

A full-stack web application for rating and reviewing websites.
Still under active development

Explore the docs »
Tech Stack · Infrastructure · Deployment · Cleanup


Table of Contents

  1. About the Project
  2. Tech Stack
  3. Infrastructure
  4. Collaboration
  5. Prerequisites / Dependencies
  6. Local Development (Docker Compose)
  7. How to Deploy on AWS
  8. Cleanup
  9. Contributing

About the Project

NetScore is a full-stack web application designed to allow users to rate and review websites.

Overview of the functionalities:

  • Register and log in
  • Add new websites (with automatic domain detection)
  • Write, edit, and delete reviews
  • View aggregated ratings and statistics
  • Manage account and personal reviews

The platform is backed by an AWS-based infrastructure with a full CI/CD pipeline managed by Jenkins, running privately inside a VPN-secured EC2 instance.

The project is still under active development — features and infrastructure are developed continuously.


Tech Stack

Category Technologies
Frontend React Vite
Backend Java Spring Boot
Database PostgreSQL
Containerization Docker Kubernetes
CI/CD Jenkins GitHub Actions
Cloud Infrastructure AWS Terraform
VPN & Security OpenVPN

Infrastructure

AWS Architecture Overview

Network Diagram

Backend Data Flow

Backend Data Flow


Collaboration

Branching Strategy

We use a feature-per-branch workflow. All feature branches (e.g. feature/website-page) are merged into development branches for the specific project components (e.g. frontend).

Conventional Commits

We applied the following commit message format according to conventional commit methodology:

<type>(<optional scope>): <description>

Example commits:

  • feat(website): implement domain extraction
  • fix(model): change score type to int
  • style(account): apply responsive design to MyAccount page

Agile Development

Each feature is one sprint.
Small, incremental merges into development branches, reviewed before merging to main.


Prerequisites

Make sure you have installed:


Local Development

Start the stack locally using Docker Compose:

docker compose up --build

Access the application on http://localhost:80

Backend API: http://localhost:8080/api

To stop all containers:

docker compose down

How to Deploy on AWS

AWS access (CLI configured) is required.

Step 1 — Remote Backend Setup

Navigate to the terraform-backend directory:

cd terraform-backend
terraform init
terraform apply

This provisions:

  • S3 bucket for Terraform state
  • DynamoDB table for state locking

Step 2 — Jenkins EBS Volume Setup

Navigate to the jenkins-ebs directory and apply:

terraform apply

This creates:

  • EBS Volume
  • IAM policies for Jenkins EC2 instance

Step 3 — Deploy Core Infrastructure

cd infrastructure
terraform init
terraform apply

This provisions:

  • VPC, subnets, IGW, NAT
  • VPN
  • EKS Cluster
  • RDS PostgreSQL (Multi-AZ)
  • Jenkins EC2 (in private subnet, VPN access required)
  • ECR repositories for backend and frontend images
  • Kubernetes deployments (backend and frontend pods) and ingress

Cleanup

To completely remove all AWS resources, destroy in reverse order:

# Infrastructure (EKS, RDS, EC2, ECR, etc.)

cd infrastructure
terraform destroy

# Jenkins EBS Volume

cd ../jenkins-ebs
terraform destroy

# Remote Terraform Backend (S3, DynamoDB)

cd ../terraform-backend
terraform destroy

Contributing

We really appreciate any suggestion that would make the project better. Feel free to fork the repo and create a pull request. If you like the project, don't forget to give it a star! Thank you!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/new-feature)
  3. Commit your Changes (git commit -m 'Add a new feature)
  4. Push to the Branch (git push origin feature/new-feature)
  5. Open a Pull Request

Top contributors:

About

Full-stack website scorer platform built using Java-Spring Boot and React; deployed to AWS using Terraform; including Jenkins CI/CD.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors