A full-stack web application for rating and reviewing websites.
Still under active development
Explore the docs »
Tech Stack ·
Infrastructure ·
Deployment ·
Cleanup
- About the Project
- Tech Stack
- Infrastructure
- Collaboration
- Prerequisites / Dependencies
- Local Development (Docker Compose)
- How to Deploy on AWS
- Cleanup
- Contributing
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.
| Category | Technologies |
|---|---|
| Frontend | |
| Backend | |
| Database | |
| Containerization | |
| CI/CD | |
| Cloud Infrastructure | |
| VPN & Security |
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).
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
Each feature is one sprint.
Small, incremental merges into development branches, reviewed before merging to main.
Make sure you have installed:
Start the stack locally using Docker Compose:
docker compose up --buildAccess the application on http://localhost:80
Backend API: http://localhost:8080/api
To stop all containers:
docker compose downAWS access (CLI configured) is required.
Navigate to the terraform-backend directory:
cd terraform-backend
terraform init
terraform applyThis provisions:
- S3 bucket for Terraform state
- DynamoDB table for state locking
Navigate to the jenkins-ebs directory and apply:
terraform applyThis creates:
- EBS Volume
- IAM policies for Jenkins EC2 instance
cd infrastructure
terraform init
terraform applyThis 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
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 destroyWe 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!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/new-feature) - Commit your Changes (
git commit -m 'Add a new feature) - Push to the Branch (
git push origin feature/new-feature) - Open a Pull Request

