The server initializes in ~/workspace/source/back/index.js:1:
import express from "express";import cors from "cors";import dotenv from "dotenv";import sequelize from "./src/db/connection.js";import routes from "./src/routes/index.js";dotenv.config();const app = express();const PORT = process.env.PORT || 3000;// Middleware configurationapp.use(cors({ origin: process.env.FRONTEND_URL || "http://localhost:5173", credentials: true}));app.use(express.json());app.use(express.urlencoded({ extended: true }));app.use("/uploads", express.static(path.join(process.cwd(), "uploads")));// Mount all routesapp.use("/", routes);// Start server with database connectionasync function startServer() { await sequelize.authenticate(); app.listen(PORT);}
All routes are centralized in ~/workspace/source/back/src/routes/index.js:1:
import express from "express";import userRouter from "./User.route.js";import movieRouter from "./Movie.route.js";import authRouter from "./Auth.route.js";import awardRouter from "./Award.route.js";import voteRouter from "./Vote.route.js";import categorieRouter from "./Categorie.route.js";import reservationRouter from "./Reservation.route.js";import eventRouter from "./Event.route.js";import dashboardRouter from "./Dashboard.route.js";import sponsorRouter from "./Sponsor.route.js";const router = express.Router();router.use("/auth", authRouter);router.use("/users", userRouter);router.use("/movies", movieRouter);router.use("/awards", awardRouter);router.use("/votes", voteRouter);router.use("/categories", categorieRouter);router.use("/reservations", reservationRouter);router.use("/events", eventRouter);router.use("/admin/dashboard", dashboardRouter);router.use("/sponsors", sponsorRouter);export default router;
All API endpoints are prefixed with their resource name (e.g., /movies, /users, /votes)
// User action triggers API call via axiosimport axios from 'axios';const response = await axios.get( 'http://localhost:3000/movies', { withCredentials: true });
2. Backend Route Matching
// Route handler in src/routes/Movie.route.jsimport { Router } from 'express';import MovieController from '../controllers/MovieController.js';import { authenticateToken } from '../middlewares/AuthMiddleware.js';const router = Router();router.get('/', authenticateToken, MovieController.getAllMovies);