Skip to content

Commit 1e50c61

Browse files
authored
Merge pull request #15 from ubclaunchpad/trisha/node-transcriptions-endpoint
Transcriptions Endpoint - Flask to Node connection
2 parents 7426b3f + f530a40 commit 1e50c61

File tree

6 files changed

+168
-16
lines changed

6 files changed

+168
-16
lines changed

backend/index.js

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,26 @@ import dotenv from "dotenv";
33
import express from "express";
44
import authRoutes from "./src/routes/authRoutes.js";
55
import logRoutes from "./src/routes/logRoutes.js";
6+
import transcriptionRoutes from "./src/routes/transcriptionRoutes.js";
7+
import fileUpload from "express-fileupload";
68

79
dotenv.config();
810

911
const corsOptions = {
10-
origin: ["http://localhost:5173"],
12+
origin: ["http://localhost:5173"],
1113
};
1214
const app = express();
1315
const PORT = process.env.PORT || 8080;
1416

1517
app.use(cors(corsOptions));
1618
app.use(express.json());
19+
app.use(fileUpload());
1720

1821
//Routes
19-
app.use('/api/auth', authRoutes);
20-
app.use('/api/log', logRoutes);
22+
app.use("/api/auth", authRoutes);
23+
app.use("/api/log", logRoutes);
24+
app.use("/api/transcriptions", transcriptionRoutes);
2125

2226
app.listen(PORT, () => {
23-
console.log(`Server listening on ${PORT}`);
27+
console.log(`Server listening on ${PORT}`);
2428
});
25-

backend/package-lock.json

Lines changed: 110 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

backend/package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,11 @@
1515
"description": "",
1616
"dependencies": {
1717
"@supabase/supabase-js": "^2.46.1",
18+
"axios": "^1.7.8",
1819
"cors": "^2.8.5",
1920
"dotenv": "^16.4.5",
2021
"express": "^4.21.0",
22+
"express-fileupload": "^1.5.1",
2123
"jsonwebtoken": "^9.0.2",
2224
"supabase": "^1.207.9"
2325
},

backend/src/routes/logRoutes.js

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
import express from "express";
22
import auth from "../middlewares/auth.js";
3-
import insertTable from "../services/cardiacSurgeryAdultService.js"
3+
import insertTable from "../services/cardiacSurgeryAdultService.js";
44

55
const router = express.Router();
66

77
router.post("/cardiacSurgeryAdultService", auth, async (req, res) => {
8-
try {
9-
const result = await insertTable(req, res);
10-
res.json(result);
11-
} catch(error) {
12-
console.error("Caught Error:", error.message);
13-
res.status(500).json({message: error.message});
14-
}
15-
})
8+
try {
9+
const result = await insertTable(req, res);
10+
res.json(result);
11+
} catch (error) {
12+
console.error("Caught Error:", error.message);
13+
res.status(500).json({ message: error.message });
14+
}
15+
});
1616

17-
export default router;
17+
export default router;
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import axios from "axios";
2+
import FormData from "form-data";
3+
import express from "express";
4+
import auth from "../middlewares/auth.js";
5+
6+
const router = express.Router();
7+
8+
router.post("/", auth, async (req, res) => {
9+
try {
10+
if (!req.files || !req.files.image) {
11+
return res.status(400).json({ error: "No image file provided" });
12+
}
13+
14+
const imageFile = req.files.image;
15+
const formData = new FormData();
16+
formData.append("image", imageFile.data, imageFile.name);
17+
18+
const response = await axios.post(
19+
"http://localhost:5000/transcribe",
20+
formData,
21+
{
22+
headers: {
23+
...formData.getHeaders(),
24+
},
25+
}
26+
);
27+
28+
res.json(response.data);
29+
} catch (error) {
30+
console.error("Caught Error:", error.message);
31+
res.status(500).json({ message: error.message });
32+
}
33+
});
34+
35+
export default router;

transcription/app.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
from flask import Flask, request, jsonify
2+
from flask_cors import CORS
23
from PIL import Image
34
from transformers import AutoProcessor, AutoModelForCausalLM
45
import torch
56

67
app = Flask(__name__)
8+
CORS(app)
79

810
# load model and processor once during init
911
device = "cuda:0" if torch.cuda.is_available() else "cpu"
@@ -37,4 +39,4 @@ def transcribe():
3739
return jsonify({"error": str(e)}), 500
3840

3941
if __name__ == "__main__":
40-
app.run(debug=True)
42+
app.run(host='0.0.0.0',port=5000)

0 commit comments

Comments
 (0)