Compare commits

...

15 Commits

Author SHA1 Message Date
MikeHughes-BIN 3053674888 documents storage folder for generated documents 2025-11-11 00:27:11 +01:00
MikeHughes-BIN 6c7bd4661a Modified the description 2025-11-11 00:12:29 +01:00
MikeHughes-BIN e7271f216a Developed an API integration for Google Gemini AI to automatically generate Markdown documentation from transcripts. 2025-11-11 00:11:42 +01:00
Aarthi Manivannan, Premanathan Aarthi Manivannan af794e0245 Merge branch 'feature/ci-pipeline-s1-09a-1' into 'develop'
Feature/ci pipeline s1 09a 1

See merge request proj-wise2526-video2document/video2document!7
2025-11-10 18:07:55 +01:00
Spanier, Pit 3a8963b49d Merge branch 'feature/ui-test' into 'develop'
Added a progressbar

See merge request proj-wise2526-video2document/video2document!13
2025-11-10 15:43:55 +01:00
eric.minning f4c45f8371 Added a progressbar 2025-11-10 15:38:59 +01:00
Hughes, Mike 73ad7b0687 Merge branch 'feature/modulare-pipeline-s1-04' into 'develop'
Implemented the general modular framework.

See merge request proj-wise2526-video2document/video2document!12
2025-11-08 14:59:56 +01:00
Aarthi Manivannan, Premanathan Aarthi Manivannan fb173a4041 Update .gitlab-ci.yml file 2025-11-06 16:21:01 +01:00
Aarthi Manivannan, Premanathan Aarthi Manivannan b70680e950 Ci file 2025-11-06 16:00:28 +01:00
Aarthi Manivannan, Premanathan Aarthi Manivannan a069452f87 requirements 2025-11-06 15:53:38 +01:00
Aarthi Manivannan, Premanathan Aarthi Manivannan fd4d342eeb Delete .gitlab-ci.yml 2025-11-06 15:52:45 +01:00
Aarthi Manivannan, Premanathan Aarthi Manivannan 70221683c3 tesing 2025-11-06 15:51:56 +01:00
Aarthi Manivannan, Premanathan Aarthi Manivannan a92e33fa59 Add new directory 2025-11-06 15:51:08 +01:00
Aarthi Manivannan, Premanathan Aarthi Manivannan 0dc2ebe99c App 2025-11-06 15:50:10 +01:00
Aarthi Manivannan, Premanathan Aarthi Manivannan a0fe1a80e3 Add new directory 2025-11-06 15:49:27 +01:00
13 changed files with 1650 additions and 10 deletions
+33 -6
View File
@@ -1,6 +1,33 @@
build-job:
script:
- echo "Building the Project.."
test-job:
script:
- echo "Running Tests.."
workflow:
rules:
# Run the pipeline for merge requests or when committing to a branch
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
- if: $CI_COMMIT_BRANCH
image: python:3.14.0
stages:
- setup
- test
setup_environment:
stage: setup
script:
- pip install --upgrade pip
- pip install -r requirements.txt
- echo "Dependencies installed successfully."
only:
- main
- feature/ci-pipeline-s1-09a-1 # You can add more branches if needed
test_app:
stage: test
script:
- echo "Running V2D Framework basic test..."
- python -m unittest discover || echo "No tests found."
only:
- main
- feature/ci-pipeline-s1-09a-1
View File
+7
View File
@@ -0,0 +1,7 @@
from fastapi import FastAPI
app = FastAPI()
@app.get("/health")
def health_check():
return {"status": "ok"}
+5
View File
@@ -32,6 +32,11 @@
</div>
<button class="submit-btn" id="submitButton">Submit Video</button>
<div class="progressbar">
<div class="progress_fill"></div>
<span class="progress_text">0%</span>
</div>
</div>
<script src="script.js"></script>
+6
View File
@@ -29,3 +29,9 @@ function handleFiles(files) {
}
}
}
function updateProgressBar(bar, value){
value = Math.round(value);
bar.querySelector(".progress_fill").style.width = `${value}%`;
bar.querySelector(".progress_text").textContent = `${value}%`;
}
+22
View File
@@ -108,3 +108,25 @@ h1 {
align-content: center;
}
.progressbar{
position: relative;
width: 210px;
height: 30px;
background: darkslategray;
border-radius: 5px;
overflow: hidden;
}
.progress_fill{
width: 0%;
height: 100%;
background: green;
transition: all 0.2s;
}
.progress_text{
position: absolute;
top: 50%;
right: 5px;
transform: translateY(-50%);
}
+1532
View File
File diff suppressed because it is too large Load Diff
+3 -4
View File
@@ -1,10 +1,11 @@
{
"type": "module",
"dependencies": {
"@google/genai": "^1.29.0",
"cli-progress": "^3.12.0",
"express": "^5.1.0",
"ffmpeg-static": "^5.2.0",
"fluent-ffmpeg": "^2.1.3",
"express": "^5.1.0"
"fluent-ffmpeg": "^2.1.3"
},
"devDependencies": {
"@types/cli-progress": "^3.11.6",
@@ -31,5 +32,3 @@
"author": "",
"license": "ISC"
}
+3
View File
@@ -0,0 +1,3 @@
fastapi
uvicorn
pytest
@@ -0,0 +1,31 @@
import { GoogleGenAI } from "@google/genai";
import fs from "fs";
// Mike Hughes 10/11/25 - Code inspired from
// https://www.geeksforgeeks.org/javascript/javascript-program-to-read-text-file/ for reading text files in JS
// and from https://ai.google.dev/gemini-api/docs/quickstart?hl=de for using Gemini API
// Before using, make sure to export the Google Gemini API key as an environment variable:
// export GOOGLE_API_KEY="your_api_key_here"
// Keys can be obtained from https://aistudio.google.com/app/api-keys
// Also make sure to install the package via sudo npm install @google/genai
const ai = new GoogleGenAI({});
let transcript = "";
async function main() {
try {
const transcript = await fs.promises.readFile('../../../../storage/transcripts/Kurzgesagt.txt', 'utf-8');
const response = await ai.models.generateContent({
model: "gemini-2.5-flash",
contents: `Create a short documentation about the content of the following transcript:\n\n${transcript}`,
});
console.log(response.text);
fs.writeFileSync("../../../../storage/documents/Kurzgesagt_documentation.md", response.text, "utf8");
} catch (error) {
console.error('Error generating content:', error);
}
}
main();
View File
View File
+8
View File
@@ -0,0 +1,8 @@
from fastapi.testclient import TestClient
from app.main import app
client = TestClient(app)
def test_health():
response = client.get("/health")
assert response.status_code == 200