API ini digunakan untuk mengelola program latihan (workout) dengan kemampuan untuk menyimpan data latihan dan video tutorial.
workout-api/
├── public/
│   └── uploads/        # Folder untuk menyimpan video
├── src/
│   ├── config/         # Konfigurasi database
│   ├── controllers/    # Logic bisnis
│   ├── middleware/     # Middleware (upload, auth, etc)
│   ├── models/         # Model database
│   ├── routes/         # Definisi routes
│   └── app.js         # Entry point aplikasi
└── .env               # Environment variables
{
  name: String,        // Nama program latihan
  description: String, // Deskripsi program
  videoUrl: String,    // URL video tutorial
  createdAt: Date,     // Waktu pembuatan
  updatedAt: Date      // Waktu update terakhir
}- URL: 
/api/workouts - Method: 
POST - Content-Type: 
multipart/form-data 
Request Body:
| Field | Type | Description | 
|---|---|---|
| name | string | Nama latihan | 
| description | string | Deskripsi latihan | 
| video | file | File video tutorial | 
Success Response (201):
{
    "id": "675a946400dfa7cd761a7521",
    "name": "Joging",
    "description": "olahraga sehat",
    "video_url": "/uploads/1733989476286.mp4"
}- URL: 
/api/workouts - Method: 
GET 
Success Response (200):
[
    {
        "id": "675a946400dfa7cd761a7521",
        "name": "Joging",
        "description": "olahraga sehat",
        "video_url": "/uploads/1733989476286.mp4"
    }
]sequenceDiagram
    Client->>+API: POST /api/workouts
    API->>+Multer: Process video upload
    Multer-->>-API: Save video to /uploads
    API->>+MongoDB: Save workout data
    MongoDB-->>-API: Return saved data
    API-->>-Client: Return success response
    sequenceDiagram
    Client->>+API: GET /api/workouts
    API->>+MongoDB: Find all workouts
    MongoDB-->>-API: Return workout data
    API-->>-Client: Return formatted response
    npm installCreate .env file:
PORT=3000
MONGODB_URI=mongodb://localhost:27017/workout-dbmkdir -p public/uploadsnpm run dev- Method: 
POST - URL: 
http://localhost:3000/api/workouts - Body: 
form-dataname: "Joging" description: "olahraga sehat" video: [select file] 
- Method: 
GET - URL: 
http://localhost:3000/api/workouts 
curl -X POST \
  -F "name=Joging" \
  -F "description=olahraga sehat" \
  -F "video=@/path/to/video.mp4" \
  http://localhost:3000/api/workoutscurl http://localhost:3000/api/workoutsexpress: Web frameworkmongoose: MongoDB ODMmulter: File upload handlingdotenv: Environment configuration
| Status Code | Description | 
|---|---|
| 200 | Success | 
| 201 | Created | 
| 400 | Bad Request | 
| 404 | Not Found | 
| 500 | Server Error | 
Videos dapat diakses melalui browser dengan format URL:
http://localhost:3000/uploads/{filename}
Contoh:
http://localhost:3000/uploads/1733989476286.mp4
connect MongoDB nama DB
workout-db
collection
workouts
