JAS is a modern fullstack web application built with Angular 17 and Tailwind CSS in the frontend and Spring Boot 21 in the backend.
Status: Stable / Production-ready, under continuous development
⚠️ The logo was generated using AI.
It provides:
- Secure login and registration system
- Email verification
- Password hashing
- JWT-based authentication
- User management
Additional features include multilingual support (DE/EN), dark/light mode, customizable color themes, account settings (change username/password), and prepared legal pages (Imprint/Privacy).
Emails can be personalized with app.name and app.mail.
| Category | Features |
|---|---|
| Authentication | Login/Logout, Registration, Password Reset, JWT Token |
| Security | Password Hashing, Account Activation, Spring Security |
| UI/UX | Dark/Light Mode, Blue Color Theme, Responsive, Navbar, Account Settings |
| Internationalization | German/English via JSON files |
| Verification Code, Personalized Sender Information | |
| Authorization | User/Admin roles with different permissions |
- Frontend: Angular 17, Tailwind CSS
- Backend: Spring Boot 21, Spring Security, JWT
- Database: PostgreSQL, Liquibase
- Mail: SMTP (Gmail)
- Personalization: app.name, app.mail
JAS/
├── backend/ → Java Spring Boot
│ └── Dockerfile
├── frontend/ → Angular
│ └── Dockerfile
├── docker-compose.yml
└── README.md
Clone repository:
git clone https://github.com/R-100/JAS-Java.Angular.Security.git
Prerequisites
- Docker Desktop
JAS/
│── /docker-compose.yml
Edit Variables
environment:
- DB_SERVER=jas-postgres
- POSTGRES_DB=jas
- POSTGRES_USER=jas
- POSTGRES_PASSWORD=jas
- APPLICATION_NAME=JAS
- MAIL_USERNAME=your_email@gmail.com
- MAIL_PASSWORD=your_app_password
- APPLICATION_MAIL=your_email@gmail.com
- JWT_SECRET="my-super-secret-key-that-is-at-least-64-characters-long-123456"
Open the terminal the main objective of the project:
docker compose up
Prerequisites
- Java 21
- Node.js >=18
- npm / yarn
- PostgreSQL
- Maven
CREATE DATABASE jas_db;
JWT_SECRET=your_64_character_secret
DB_URL=jdbc:postgresql://localhost:5432/jas_db
DB_USERNAME=postgres
DB_PASSWORD=your_password
MAIL_USERNAME=your_email@gmail.com
MAIL_PASSWORD=your_app_password
APPLICATION_NAME=JAS
APPLICATION_MAIL=info@jas.com
The application attempts to reactivate the deactivated lines and deactivate the activated Docker lines by deleting them or converting them to comments.
cd backend
mvn spring-boot:run
cd frontend
npm install
ng serve
Frontend runs at: http://localhost:4200
- User registers
- Database stores: Username, Email (plain), Password (hashed)
- Verification code sent via email
- User enters code → Account activated
- Login generates JWT Token
- Token used for API requests
- Login / Logout
- Registration
- Password reset
- Account activation
- Change username & password
- Switch language (DE/EN)
- Dark/Light Mode persistence
- Custom Blue Color Theme
- Password hashing
- JWT token authentication
- Spring Security integration
The application supports role-based access control:
- User: Standard access to personal features
- Admin: Extended permissions for management (Admin Area)