require('dotenv').config(); const express = require('express'); const cors = require('cors'); const path = require('path'); const db = require('./db'); const recognizeRoute = require('./routes/recognize'); const metadataRoute = require('./routes/metadata'); const suggestionsRoute = require('./routes/suggestions'); const searchRoute = require('./routes/search'); const tracksRoute = require('./routes/tracks'); const coverRoute = require('./routes/cover'); const app = express(); const port = process.env.PORT || 3000; app.use(cors()); app.use(express.json()); // Serve static frontend and shared assets app.use(express.static(path.join(__dirname, '../public'))); app.use('/shared', express.static(path.join(__dirname, '../shared'))); // API Routes app.use('/api/recognize', recognizeRoute); app.use('/api/metadata', metadataRoute); app.use('/api/suggestions', suggestionsRoute); app.use('/api/search', searchRoute); app.use('/api/tracks', tracksRoute); app.use('/api/cover', coverRoute); // Start server after connecting DB db.initDb().then(() => { app.listen(port, () => { console.log(`KeySelector backend listening on port ${port}`); }); });