parent
e07a2531be
commit
82ca5bdf72
@ -0,0 +1,63 @@
|
||||
# GEMINI Analysis for IBMS_NEW
|
||||
|
||||
## Project Overview
|
||||
|
||||
This project is the "Ilsan Dong-gu Illegal Building Integrated Management System" (일산 동구 건축물 위법행위 통합관리시스템). It appears to be a web application for government officials to manage and track violations related to illegal buildings.
|
||||
|
||||
**Key Technologies:**
|
||||
* **Backend:** Java, Spring Boot
|
||||
* **Framework:** eGovFramework (A Spring-based framework widely used by the South Korean government)
|
||||
* **Build Tool:** Gradle
|
||||
* **Database:** MariaDB with MyBatis for data mapping.
|
||||
* **Frontend:** JSP (JavaServer Pages) with the Apache Tiles templating framework.
|
||||
* **Security:** Spring Security for authentication and authorization.
|
||||
|
||||
**Architecture:**
|
||||
The application is a monolithic web application packaged as a WAR file. It follows a standard Model-View-Controller (MVC) architecture:
|
||||
* **Controller:** Spring MVC controllers handle HTTP requests (URLs often end in `.do`).
|
||||
* **Service:** A service layer likely contains the core business logic.
|
||||
* **Data Access:** MyBatis mappers connect to a MariaDB database. The configuration maps snake_case database columns to camelCase Java fields.
|
||||
* **View:** JSP files rendered using the Tiles framework compose the UI.
|
||||
* **Authentication:** A custom `AuthInterceptor` (`AuthInterceptor.java`) checks for a user session on each request and redirects to a login page if the user is not authenticated.
|
||||
|
||||
## Building and Running
|
||||
|
||||
**Prerequisites:**
|
||||
* Java Development Kit (JDK)
|
||||
* Gradle
|
||||
|
||||
**Configuration:**
|
||||
1. Database connection details must be configured in the appropriate profile YAML file located at `src/main/resources/`.
|
||||
2. The active Spring profile (`local`, `dev`, or `prd`) can be set in `src/main/resources/application.yml`.
|
||||
|
||||
**Commands:**
|
||||
|
||||
* **Build the project:**
|
||||
```bash
|
||||
./gradlew clean build
|
||||
```
|
||||
This will produce a `.war` file in the `build/libs/` directory.
|
||||
|
||||
* **Run for development:**
|
||||
```bash
|
||||
./gradlew bootRun
|
||||
```
|
||||
The application will start on the port configured in `application.yml` (default is 8080).
|
||||
|
||||
* **Run tests:**
|
||||
```bash
|
||||
./gradlew test
|
||||
```
|
||||
|
||||
* **Deploy to a server:**
|
||||
Deploy the generated `.war` file from `build/libs/` to a compatible Java servlet container like Apache Tomcat.
|
||||
|
||||
## Development Conventions
|
||||
|
||||
* **Framework Style:** The project adheres to the conventions of the eGovFramework, including its specific package structure and component model.
|
||||
* **Code Consistency:** When modifying source code (especially Java, XML, and JSP/HTML), always analyze existing files to understand and apply the established coding patterns, formatting, and conventions.
|
||||
* **Database Schema:** DDL (Data Definition Language) files for the MariaDB database are maintained in the `DB-DDL/maria/ddl/` directory.
|
||||
* **Data Mapping:** MyBatis is configured with `map-underscore-to-camel-case: true`, so database columns like `user_id` are automatically mapped to Java fields like `userId`. Mapper XML files are located in `src/main/resources/mybatis/mapper/`.
|
||||
* **API Endpoints:** Web page and API URLs generally follow a `*.do` pattern (e.g., `/login.do`, `/getUser.do`).
|
||||
* **View Templates:** The UI is built with JSP files, which are assembled using templates defined in `/WEB-INF/tiles/`.
|
||||
* **Session Management:** User authentication is stored in the HTTP session. The `AuthInterceptor` protects pages that require a login.
|
||||
Loading…
Reference in New Issue