Skip to content

Files

Latest commit

 

History

History
247 lines (176 loc) · 8.23 KB

README.en.md

File metadata and controls

247 lines (176 loc) · 8.23 KB

Fullstack Application : Angular 20, Node.js and Java 21

logo ganatan

🚀 Project Goals

  • ✅ Complete frontend / backend stack
  • ✅ CI/CD and Docker compatibility
  • ✅ Simple deployment (Docker optional)
  • ✅ Isolated and testable components

👉 Version française disponible ici : Français


Component Description
Frontend Angular 20 — SPA with Routing, SSR, PWA, SEO
Backend JavaScript (ESM) Node.js 22 + Express — REST API with mocked data or database
Backend JavaScript (CJS) CJS variant, same structure as ESM version
Backend TypeScript Node.js 22 + TypeScript — Typed REST API with data or database
Backend Java Spring Boot Java 21 + Spring Boot — Simple and modern REST API

🔧 Continuous Integration (CI)

Project CI Badge
Frontend Angular Frontend Angular CI
Backend JavaScript (ESM) Backend JavaScript ESM CI
Backend JavaScript (CJS) Backend JavaScript CJS CI
Backend TypeScript Backend TypeScript CI
Backend Java Spring Boot Backend Spring Boot CI

📦 Docker Images

Component Docker Badge
Backend JavaScript (ESM) Docker Image Version - Backend JavaScript ESM
Backend JavaScript (CJS) Docker Image Version - Backend JavaScript CJS
Backend TypeScript Docker Image Version - Backend TypeScript
Frontend Angular Docker Image Version - Frontend Angular

📦 Tech Stack

Angular Node Java Docker License: MIT


📚 Table of Contents


🌐 Live Demo

🔗 Check out the Angular demo

Angular 20 Example Application


📁 Project Structure

🧩 Frontend

  • frontend-angular
    Angular 19 app (with Routing, Lazy loading, SSR, PWA, SEO)

🚀 Backends

  • backend-javascript ESM
    Express.js API in JavaScript (ESM) with PostgreSQL, MySQL or mock data

  • backend-javascript commonjs
    Express.js API in JavaScript (CJS) with PostgreSQL, MySQL or mock data

  • backend-typescript
    Express.js API in TypeScript with PostgreSQL, MySQL or mock data


🔧 Frontend Configuration (Angular)

In frontend-angular/src/environments/environment.ts:

useDatabase: false,
backend: 'http://localhost:3000',
useDatabase Mode
false Mocked data handled in frontend
true Real data fetched from backend

🛠 Backend Configuration

In .env file:

PORT=3000
DB_CLIENT=mock # mock | pg | mysql
DB_CLIENT Data Source
mock Mocked data
pg PostgreSQL
mysql MySQL

🔗 Exposed APIs

Resource URL
Continents http://localhost:3000/continents
Cities http://localhost:3000/cities
Countries http://localhost:3000/countries
Persons http://localhost:3000/persons
Professions http://localhost:3000/professions

⚙️ Quick Start

▶️ Clone the project

git clone https://github.com/ganatan/angular-app.git
cd angular-app

▶️ Frontend Angular

cd frontend-angular
npm install
npm start
# http://localhost:4200

▶️ Backend JavaScript ESM

cd backend-javascript-esm
npm install
npm start
# http://localhost:3000

▶️ Backend JavaScript CJS

cd backend-javascript-cjs
npm install
npm start
# http://localhost:3000

▶️ Backend TypeScript

cd backend-typescript
npm install
npm start
# http://localhost:3000

🐳 Deployment with Docker

▶️ Prerequisites

▶️ Launch the Angular frontend with Docker

docker pull ganatan/frontend-angular
docker run -d -p 4200:4200 ganatan/frontend-angular
# http://localhost:4200

▶️ Launch the JavaScript ESM backend with Docker

docker pull ganatan/backend-javascript-esm
docker run -d -p 8080:8080 ganatan/backend-javascript-esm
# http://localhost:8080

▶️ Launch the JavaScript CJS backend with Docker

docker pull ganatan/backend-javascript-cjs
docker run -d -p 8080:8080 ganatan/backend-javascript-cjs
# http://localhost:8080

▶️ Launch the Typescript backend with Docker

docker pull ganatan/backend-typescript
docker run -d -p 8080:8080 ganatan/backend-typescript
# http://localhost:8080

👤 Author


📚 Documentation