Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
f99b0d8
Add frontend
annetecm Apr 13, 2026
cd2f558
Changed Bot Token
anettmava Apr 15, 2026
7499b01
Change frontend to include all KPIs
annetecm Apr 16, 2026
831c11b
Merge branch 'main' of https://github.com/annetecm/oci_devops_project…
anettmava Apr 16, 2026
bfbccf9
Connection Fronted-Backend v1
anettmava Apr 16, 2026
8092b16
Merge pull request #1 from annetecm/Token
MonseMc20 Apr 16, 2026
273efd1
Merge pull request #2 from annetecm/Token
MonseMc20 Apr 17, 2026
7e27bb4
Frontend fixes
anettmava Apr 17, 2026
ea41a5b
fixed graphs legend
anettmava Apr 17, 2026
a140856
Developer UI
MonseMc20 Apr 18, 2026
9b5539a
Merge branch 'monse' of https://github.com/annetecm/oci_devops_projec…
MonseMc20 Apr 18, 2026
0a04887
Functional Front and Back v1
anettmava Apr 21, 2026
e89411f
Updated db kubernetes
anettmava Apr 21, 2026
b5f1812
Updated db kubernetes
anettmava Apr 21, 2026
4fba31a
Updated db kubernetes V2
anettmava Apr 21, 2026
41570ea
Updated db kubernetes v2
anettmava Apr 21, 2026
72d02e9
Merge branch 'main' of https://github.com/annetecm/oci_devops_project…
MonseMc20 Apr 21, 2026
dd6e11c
Merge pull request #6 from annetecm/monse
MonseMc20 Apr 21, 2026
dd55acd
Fixed appproperties todolistapp
anettmava Apr 21, 2026
3805310
Merge pull request #7 from annetecm/Token
anettmava Apr 21, 2026
b90e805
Add create, edit and delete task features
annetecm Apr 23, 2026
09b2606
Chatbot creates and shows tasks
anettmava Apr 25, 2026
7eb615d
first implementation of AI
sarx-oh Apr 25, 2026
33a56c1
Add login and OTP
annetecm Apr 25, 2026
e13f080
Changed LLM model
anettmava Apr 26, 2026
b2db2b0
Implementation of AI (summarize) on the chatbot
sarx-oh Apr 26, 2026
f01084a
Merge branch 'main' into IAimplementation
sarx-oh Apr 26, 2026
1f421a7
Merge pull request #8 from annetecm/IAimplementation
sarx-oh Apr 26, 2026
96711bd
Fixed pom.xml and Auth service
sarx-oh Apr 26, 2026
7ec984b
Merge pull request #9 from annetecm/IAimplementation
sarx-oh Apr 26, 2026
bf9ee08
New prompt for the AI
sarx-oh Apr 28, 2026
c53f0e9
Merge pull request #10 from annetecm/IAimplementation
sarx-oh Apr 28, 2026
55b0d47
Created new pages for manager and developer. Modified KPI Charts and …
MonseMc20 Apr 28, 2026
4ab6574
Merge pull request #11 from annetecm/ui
MonseMc20 Apr 28, 2026
5c4b763
Fixed frontend, shows actual dev name
anettmava Apr 28, 2026
81a5b5b
Fixed typo
anettmava Apr 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Copilot Instructions for `oci_devops_project`

## Build, test, and lint commands

Run commands from the repo root unless noted.

| Area | Purpose | Command |
| --- | --- | --- |
| Backend (Spring Boot + bundled frontend) | Full backend package (also runs frontend `npm install` + `npm run build` via Maven plugin) | `cd MtdrSpring\backend && mvn clean package spring-boot:repackage` |
| Backend | Run test suite | `cd MtdrSpring\backend && mvn test` |
| Backend | Run a single test class | `cd MtdrSpring\backend && mvn -Dtest=ClassName test` |
| Backend | Run a single test method | `cd MtdrSpring\backend && mvn -Dtest=ClassName#methodName test` |
| Frontend (Vite app under backend) | Local dev server | `cd MtdrSpring\backend\src\main\frontend && npm run dev` |
| Frontend | Production build | `cd MtdrSpring\backend\src\main\frontend && npm run build` |
| Lint | Status | No repo-wired lint command is configured in Maven or frontend scripts. `java_checks.xml` exists, but no active checkstyle plugin/script references it. |

## High-level architecture

- **Backend API:** Spring Boot app in `MtdrSpring\backend\src\main\java\com\springboot\MyTodoList` with standard controller -> service -> repository layers for `ToDoItem` and `User`.
- **Persistence mode switch:** Services support Oracle-backed JPA repositories *or* in-memory fallback. `app.nodb` and optional repository injection (`@Autowired(required=false)`) control this path.
- **Frontend packaging model:** The React/Vite app in `src\main\frontend` is built by `frontend-maven-plugin`, then copied into Spring static resources by `maven-resources-plugin` so the backend jar serves UI assets.
- **Current UI data source:** Frontend pages consume `src\app\data\mockData.ts` (no `fetch`/API calls yet), so UI behavior is currently decoupled from backend REST endpoints.
- **Additional integration surface:** A Telegram long-polling bot (`ToDoItemBotController` + `BotActions`) is wired into Spring and uses `ToDoItemService` plus `DeepSeekService`.
- **Runtime/deployment shape:** Oracle datasource settings are environment-driven (`db_url`, `db_user`, `dbpassword`, `driver_class_name`), and OCI/Kubernetes deployment uses `todolistapp-springboot.yaml` templated by shell scripts.

## Key conventions in this repository

- **Environment variable naming is part of runtime contract:** Backend DB wiring expects non-standard property names (`db_url`, `db_user`, `dbpassword`, `driver_class_name`) instead of typical `spring.datasource.*` env mappings.
- **Legacy REST route style is mixed and should be preserved unless intentionally refactoring:** examples include `/todolist`, `/adduser`, `updateUser/{id}`, and `deleteUser/{id}`.
- **Entity/model naming uses uppercase `ID` accessors:** `getID()` / `setID()` are used throughout services/controllers; keep consistency when adding model fields or DTO mapping.
- **Security is intentionally open by default:** `WebSecurityConfiguration` permits all requests and disables CSRF/basic/form login; do not assume authentication guards exist on endpoints.
- **Bot command flow is sequential action evaluation:** Telegram message handling in `ToDoItemBotController.consume` constructs `BotActions` and runs `fnStart`, `fnDone`, `fnUndo`, `fnDelete`, `fnHide`, `fnListAll`, `fnAddItem`, `fnLLM`, then `fnElse` in order.
20 changes: 20 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ hs_err_pid*
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# dependencies
/node_modules/
**/node_modules/
frontend/node_modules
frontend/.pnp
.pnp.js
Expand All @@ -46,6 +48,24 @@ frontend/build

frontend/package-lock.json
frontend/npm-debug.log*

# Secrets / sensitive config
MtdrSpring/backend/src/main/resources/application.properties
frontend/yarn-debug.log*
frontend/yarn-error.log*
/MtdrSpring/backend/wallet
MtdrSpring/backend/src/main/resources/application.properties

# Docker dev files
/DockerfileDev
/MtdrSpring/backend/DockerfileDev

# env files with secrets
**/.env
**/.env.*
!**/.env.example

# accidental npm lockfiles outside frontend
/package-lock.json
/MtdrSpring/backend/package-lock.json

3 changes: 2 additions & 1 deletion MtdrSpring/.gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
**/node_modules/**
**/build/**
**/target/**
**/target/**
backend/src/main/resources/application.properties
52 changes: 39 additions & 13 deletions MtdrSpring/backend/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,15 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.5.6</version>
<relativePath/> <!-- lookup parent from repository -->
<relativePath/>
</parent>
<groupId>com.springboot</groupId>
<artifactId>MyTodoList</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>MyTodoList</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>11</java.version>
<java.version>17</java.version>
<version.lib.ojdbc>21.1.0.0</version.lib.ojdbc>
<frontend-src-dir>${project.basedir}/src/main/frontend</frontend-src-dir>
<node.version>v23.9.0</node.version>
Expand All @@ -29,21 +29,16 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/org.hibernate.orm/hibernate-community-dialects -->
<dependency>
<groupId>org.hibernate.orm</groupId>
<artifactId>hibernate-community-dialects</artifactId>
<version>6.6.22.Final</version>
</dependency>
<!-- Replaced SpringFox (CVE-2019-17495) with SpringDoc OpenAPI for Spring Boot 3.x support -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.6.1</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.6.1</version>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>2.6.0</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents.client5</groupId>
Expand Down Expand Up @@ -89,7 +84,38 @@
<version>1.18.30</version>
<scope>provided</scope>
</dependency>
</dependencies>
<!-- OCI SDK for Generative AI -->
<dependency>
<groupId>com.oracle.oci.sdk</groupId>
<artifactId>oci-java-sdk-generativeai</artifactId>
<version>3.37.0</version>
</dependency>
<dependency>
<groupId>com.oracle.oci.sdk</groupId>
<artifactId>oci-java-sdk-common</artifactId>
<version>3.37.0</version>
</dependency>
<dependency>
<groupId>com.oracle.oci.sdk</groupId>
<artifactId>oci-java-sdk-common-httpclient-jersey</artifactId>
<version>3.37.0</version>
</dependency>
<!-- JSON parsing for LLM responses -->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.10.1</version>
</dependency>
<dependency>
<groupId>com.google.genai</groupId>
<artifactId>google-genai</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<!-- Keeps frontend and backend separate. -->
Expand Down Expand Up @@ -168,4 +194,4 @@
</plugin>
</plugins>
</build>
</project>
</project>
48 changes: 48 additions & 0 deletions MtdrSpring/backend/proof.http
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
### 1. GET all users (check existing data)
GET http://localhost:8080/users

###

### 2. POST a stamped user (oci-proof test)
POST http://localhost:8080/adduser
Content-Type: application/json

{
"phone": "0000000000",
"email": "oci-proof-20260416@test.com",
"name": "OCI",
"lastName": "Proof",
"password": "test1234"
}

###

### 3. GET all users again (confirm new user appears)
GET http://localhost:8080/users

###

### 4. GET specific user by ID (replace 1 with the ID from the location header)
GET http://localhost:8080/users/1

###

### 5. GET all todos (confirms todolist table too)
GET http://localhost:8080/todolist

###

### 6. POST a stamped todo item
POST http://localhost:8080/todolist
Content-Type: application/json

{
"description": "oci-proof-20260416",
"creation_ts": "2026-04-16T06:00:00Z",
"done": false
}

###

### 7. Unit test endpoint (built-in test)
GET http://localhost:8081/unitTestAdd
13 changes: 13 additions & 0 deletions MtdrSpring/backend/src/main/frontend/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Collaborative Task Management UI</title>
<style>html, body { height: 100%; margin: 0; } #root { height: 100%; }</style>
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/main.tsx"></script>
</body>
</html>
Loading