Overview of technologies, frameworks, and tools used in IoT Bay.
Frontend Layer (JSP/CSS/TypeScript)
↓
Servlet/Controller Layer (Java)
↓
Service/Business Logic (Java)
↓
Data Access Layer (DAO Pattern)
↓
Database (SQLite/PostgreSQL)
Core Language & Framework
Technology
Version
Purpose
Java
8+
Backend language
Servlet API
3.1
Request/response handling
JSP
2.3
Server-side templates
Build & Dependency Management
Technology
Version
Purpose
Maven
3.6+
Build and dependency management
pom.xml
-
Project configuration
Technology
Version
Purpose
SQLite
3.x
Development database
PostgreSQL
13+
Production database (optional)
JDBC
4.2+
Database connectivity
Technology
Version
Purpose
JUnit
4.13+
Unit testing framework
Mockito
2.x+
Mocking library
Technology
Version
Purpose
SLF4J
1.7+
Logging facade
Logback
1.2+
Logging implementation
Technology
Version
Purpose
HTML5
-
Page structure
JSP
2.3
Dynamic content
JSTL
1.2
Tag library
Technology
Version
Purpose
CSS3
-
Styling & layout
Flexbox
-
Layout system
Grid
-
Layout system
Atomic Design
-
Component organization
Technology
Version
Purpose
JavaScript
ES6+
Client-side logic
TypeScript
5.3+
Type-safe JavaScript
Fetch API
-
AJAX requests
Technology
Version
Purpose
SVG
-
Vector graphics
CSS Animations
-
Visual effects
Responsive Design
-
Mobile support
Technology
Version
Purpose
Jetty
9.4+
Embedded web server (dev)
WAR Format
-
Deployable package
Technology
Version
Purpose
Docker
20+
Containerization
Docker Compose
2+
Multi-container orchestration
Eclipse : Full support via Maven integration
IntelliJ IDEA : Full support via Maven integration
Visual Studio Code : Java extensions + Maven
Technology
Purpose
Git
Version control system
GitHub
Repository hosting
# Build
mvn clean install
# Run tests
mvn test
# Run application
mvn jetty:run
# Build WAR file
mvn clean package
Model-View-Controller (MVC)
Request
↓
Controller (HttpServlet)
↓
Service (Business Logic)
↓
DAO (Data Access)
↓
Database
↓
DAO returns Entity
↓
Service processes Entity
↓
Controller forwards to JSP (View)
↓
JSP renders HTML
↓
Response to Browser
Data Access Object (DAO) Pattern
Interface
↓
┌─────────────────┐
│ Implementation │ ← Database queries
│ Classes │
└─────────────────┘
↓
Entity Classes
↓
Database
Session-based authentication
Password hashing (SHA-256 + salt)
Role-Based Access Control (RBAC)
Resource-level permissions
SQL injection prevention (prepared statements)
XSS prevention (output encoding)
CSRF protection (token validation)
Developer
↓
Git Branch (feat/feature-name)
↓
Maven Build (mvn clean install)
↓
Run Tests (mvn test)
↓
Git Commit (proper message format)
↓
Push to GitHub
↓
Create Pull Request
↓
Code Review
↓
Merge to main
↓
Automated Build & Test (CI/CD)
↓
Deploy
Java : 8 or higher
Maven : 3.6 or higher
RAM : 2 GB
Disk : 500 MB
OS : Windows, macOS, Linux
Java : 11 or higher
Maven : 3.8 or higher
RAM : 4+ GB
Disk : 1 GB
IDE : Eclipse or IntelliJ IDEA
javax.servlet-api - Servlet specification
gson - JSON processing
sqlite-jdbc - SQLite driver
jstl-api - JSP tag library
junit - Testing framework
mockito - Mocking library
View complete list in pom.xml file.
Last Updated : December 3, 2025
Version : 1.0.0
Document Version : 1.0.0
Status : Published
Audience : Developers, Stakeholders
Maintained By : IoT Bay Documentation Team