Skip to content

NasDev07/API-Backend-Express

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Workout API Documentation

Overview

API ini digunakan untuk mengelola program latihan (workout) dengan kemampuan untuk menyimpan data latihan dan video tutorial.

Architecture

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

Database Schema

Workout Collection

{
  name: String,        // Nama program latihan
  description: String, // Deskripsi program
  videoUrl: String,    // URL video tutorial
  createdAt: Date,     // Waktu pembuatan
  updatedAt: Date      // Waktu update terakhir
}

API Endpoints

1. Create New Workout

  • 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"
}

2. Get All Workouts

  • URL: /api/workouts
  • Method: GET

Success Response (200):

[
    {
        "id": "675a946400dfa7cd761a7521",
        "name": "Joging",
        "description": "olahraga sehat",
        "video_url": "/uploads/1733989476286.mp4"
    }
]

Sequence Diagrams

Create Workout Flow

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
Loading

Get Workouts Flow

sequenceDiagram
    Client->>+API: GET /api/workouts
    API->>+MongoDB: Find all workouts
    MongoDB-->>-API: Return workout data
    API-->>-Client: Return formatted response
Loading

Setup Instructions

1. Install Dependencies

npm install

2. Environment Setup

Create .env file:

PORT=3000
MONGODB_URI=mongodb://localhost:27017/workout-db

3. Create Upload Directory

mkdir -p public/uploads

4. Run Server

npm run dev

Testing

Using Postman

Create Workout:

  • Method: POST
  • URL: http://localhost:3000/api/workouts
  • Body: form-data
    name: "Joging"
    description: "olahraga sehat"
    video: [select file]
    

Get Workouts:

  • Method: GET
  • URL: http://localhost:3000/api/workouts

Using cURL

Create Workout:

curl -X POST \
  -F "name=Joging" \
  -F "description=olahraga sehat" \
  -F "video=@/path/to/video.mp4" \
  http://localhost:3000/api/workouts

Get Workouts:

curl http://localhost:3000/api/workouts

Dependencies

  • express: Web framework
  • mongoose: MongoDB ODM
  • multer: File upload handling
  • dotenv: Environment configuration

Error Handling

Status Code Description
200 Success
201 Created
400 Bad Request
404 Not Found
500 Server Error

Video Access

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

image

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published