# workingonxyz-commits/mvcdesignpattern architecture

> Architecture diagram of the GitHub repository workingonxyz-commits/mvcdesignpattern, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/workingonxyz-commits/mvcdesignpattern
- Repository: https://github.com/workingonxyz-commits/mvcdesignpattern

## Overview

This is a small Java servlet MVC account application: users register, log in to view a profile, and log out. Registration inserts account details; login checks credentials, builds a User, and stores it in the HTTP session. Sampled servlet code supports the database, session, and dispatch links shown. The HTML/JSP files are present in the tree, but their contents were not sampled, so form wiring and profile rendering are not inferred.

Main entry points: [`src/main/java/in/sp/controllers/Login.java`](https://github.com/workingonxyz-commits/mvcdesignpattern/blob/main/src/main/java/in/sp/controllers/Login.java) (Login servlet), [`src/main/java/in/sp/controllers/Register.java`](https://github.com/workingonxyz-commits/mvcdesignpattern/blob/main/src/main/java/in/sp/controllers/Register.java) (Register servlet), [`src/main/webapp/login.html`](https://github.com/workingonxyz-commits/mvcdesignpattern/blob/main/src/main/webapp/login.html) (Login page), [`src/main/java/in/sp/dbcon/DbConnection.java`](https://github.com/workingonxyz-commits/mvcdesignpattern/blob/main/src/main/java/in/sp/dbcon/DbConnection.java) (DB connection)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web interface"]
  node_register_page["Registration page<br/>[register.html]"]
  node_login_page["Login page<br/>[login.html]"]
  node_profile_page["Profile view<br/>[profile.jsp]"]
  node_home_page["Home page<br/>[index.html]"]
end

subgraph group_auth["Account workflows"]
  node_register["Register servlet<br/>[Register.java]"]
  node_login["Login servlet<br/>[Login.java]"]
  node_logout["Logout servlet<br/>[Logout.java]"]
  node_user_model["User model<br/>[User.java]"]
end

subgraph group_data["Persistence and state"]
  node_db_connection["DB connection<br/>[DbConnection.java]"]
  node_http_session["HTTP session"]
  node_mysql[("MySQL database")]
end

node_visitor(("Visitor"))

node_visitor -->|"opens"| node_register_page
node_visitor -->|"opens"| node_login_page
node_visitor -->|"opens"| node_home_page
node_register -->|"gets connection"| node_db_connection
node_db_connection -->|"connects"| node_mysql
node_register -->|"inserts account"| node_mysql
node_register -->|"includes on success"| node_login_page
node_register -->|"includes on failure"| node_register_page
node_login -->|"gets connection"| node_db_connection
node_login -->|"checks credentials"| node_mysql
node_login -->|"builds user"| node_user_model
node_login -->|"stores user"| node_http_session
node_login -->|"forwards on success"| node_profile_page
node_login -->|"includes on failure"| node_login_page
node_logout -->|"invalidates"| node_http_session
node_logout -->|"forwards"| node_login_page

click node_register_page "https://github.com/workingonxyz-commits/mvcdesignpattern/blob/main/src/main/webapp/register.html"
click node_login_page "https://github.com/workingonxyz-commits/mvcdesignpattern/blob/main/src/main/webapp/login.html"
click node_profile_page "https://github.com/workingonxyz-commits/mvcdesignpattern/blob/main/src/main/webapp/profile.jsp"
click node_home_page "https://github.com/workingonxyz-commits/mvcdesignpattern/blob/main/src/main/webapp/index.html"
click node_register "https://github.com/workingonxyz-commits/mvcdesignpattern/blob/main/src/main/java/in/sp/controllers/Register.java"
click node_login "https://github.com/workingonxyz-commits/mvcdesignpattern/blob/main/src/main/java/in/sp/controllers/Login.java"
click node_logout "https://github.com/workingonxyz-commits/mvcdesignpattern/blob/main/src/main/java/in/sp/controllers/Logout.java"
click node_user_model "https://github.com/workingonxyz-commits/mvcdesignpattern/blob/main/src/main/java/in/sp/model/User.java"
click node_db_connection "https://github.com/workingonxyz-commits/mvcdesignpattern/blob/main/src/main/java/in/sp/dbcon/DbConnection.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_register_page,node_login_page,node_profile_page,node_home_page toneBlue
class node_register,node_login,node_logout,node_user_model toneAmber
class node_db_connection,node_http_session,node_mysql toneMint
class node_visitor toneIndigo
```

## Components

### Web interface

- [Registration page](https://github.com/workingonxyz-commits/mvcdesignpattern/blob/main/src/main/webapp/register.html): `src/main/webapp/register.html`
- [Login page](https://github.com/workingonxyz-commits/mvcdesignpattern/blob/main/src/main/webapp/login.html): `src/main/webapp/login.html`
- [Profile view](https://github.com/workingonxyz-commits/mvcdesignpattern/blob/main/src/main/webapp/profile.jsp): `src/main/webapp/profile.jsp`
- [Home page](https://github.com/workingonxyz-commits/mvcdesignpattern/blob/main/src/main/webapp/index.html): `src/main/webapp/index.html`

### Account workflows

- [Register servlet](https://github.com/workingonxyz-commits/mvcdesignpattern/blob/main/src/main/java/in/sp/controllers/Register.java): `src/main/java/in/sp/controllers/Register.java`
- [Login servlet](https://github.com/workingonxyz-commits/mvcdesignpattern/blob/main/src/main/java/in/sp/controllers/Login.java): `src/main/java/in/sp/controllers/Login.java`
- [Logout servlet](https://github.com/workingonxyz-commits/mvcdesignpattern/blob/main/src/main/java/in/sp/controllers/Logout.java): `src/main/java/in/sp/controllers/Logout.java`
- [User model](https://github.com/workingonxyz-commits/mvcdesignpattern/blob/main/src/main/java/in/sp/model/User.java): `src/main/java/in/sp/model/User.java`

### Persistence and state

- [DB connection](https://github.com/workingonxyz-commits/mvcdesignpattern/blob/main/src/main/java/in/sp/dbcon/DbConnection.java): `src/main/java/in/sp/dbcon/DbConnection.java`
- **HTTP session**
- **MySQL database**

### Other components

- **Visitor**

## Connections

- Visitor → Registration page: opens
- Visitor → Login page: opens
- Visitor → Home page: opens
- Register servlet → DB connection: gets connection
- DB connection → MySQL database: connects
- Register servlet → MySQL database: inserts account
- Register servlet → Login page: includes on success
- Register servlet → Registration page: includes on failure
- Login servlet → DB connection: gets connection
- Login servlet → MySQL database: checks credentials
- Login servlet → User model: builds user
- Login servlet → HTTP session: stores user
- Login servlet → Profile view: forwards on success
- Login servlet → Login page: includes on failure
- Logout servlet → HTTP session: invalidates
- Logout servlet → Login page: forwards
