Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Latest commit

ย 

History

10 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ’ผ PamerAja API

API ini dibuat menggunakan Django & Django REST Framework untuk mengelola pengguna, media sosial, proyek, komentar, dan fitur interaksi lainnya. Dokumentasi ini mengikuti struktur collection Postman yang telah disiapkan.

๐ŸŒ Base URL

{{base_url}} = http://127.0.0.1:8000/api

๐Ÿ” Authentication

1. Register

  • Endpoint: POST {{base_url}}/auth/register/
  • Headers: Content-Type: application/json
  • Body:
{
  "username": "testuser",
  "password": "testpassword",
  "email": "test@example.com"
}
  • Response:
{
  "status": true,
  "message": "User registered successfully",
  "data": {
    "id": 1,
    "username": "testuser",
    "email": "test@example.com"
  }
}

2. Login

  • Endpoint: POST {{base_url}}/auth/login/
  • Body:
{
  "username": "testuser",
  "password": "testpassword"
}
  • Response:
{
  "status": true,
  "message": "Login successful",
  "data": {
    "access": "<JWT_ACCESS_TOKEN>",
    "refresh": "<JWT_REFRESH_TOKEN>"
  }
}

3. Refresh Token

  • Endpoint: POST {{base_url}}/auth/token/refresh/
  • Body:
{
  "refresh": "{{refresh_token}}"
}
  • Response:
{
  "status": true,
  "message": "Token refreshed",
  "data": {
    "access": "<NEW_ACCESS_TOKEN>"
  }
}

4. Logout

  • Endpoint: POST {{base_url}}/auth/logout/
  • Headers: Authorization: Bearer {{access_token}}
  • Body:
{
  "refresh": "{{refresh_token}}"
}
  • Response:
{
  "status": true,
  "message": "Successfully logged out"
}

๐Ÿ‘ค User Profile

5. Get Profile

  • Endpoint: GET {{base_url}}/users/
  • Headers: Authorization: Bearer {{access_token}}
  • Response:
{
  "status": true,
  "message": "User profile retrieved",
  "data": {
    "id": 1,
    "username": "testuser",
    "email": "test@example.com",
    "position": "CEO",
    "address": "Jl. Veteran No. 140"
  }
}

6. Update Profile

  • Endpoint: PUT {{base_url}}/users/
  • Headers: Authorization: Bearer {{access_token}}
  • Body:
{
  "username": "updateduser",
  "email": "userupdate@gmail.com",
  "position": "Designer",
  "address": "Jl. Baru"
}
  • Response:
{
  "status": true,
  "message": "User profile updated successfully",
  "data": {
    "username": "updateduser",
    "email": "userupdate@gmail.com",
    "position": "Designer",
    "address": "Jl. Baru"
  }
}

7. Delete Profile

  • Endpoint: DELETE {{base_url}}/users/
  • Headers: Authorization: Bearer {{access_token}}
  • Response:
{
  "status": true,
  "message": "User deleted successfully"
}

๐ŸŒ Social Media

8. Get Social Media

  • Endpoint: GET {{base_url}}/users/social-media/
  • Headers: Authorization: Bearer {{access_token}}
  • Response:
{
  "status": true,
  "message": "Social media retrieved",
  "data": [
    {
      "id": 1,
      "name": "Instagram",
      "url": "https://instagram.com/testuser"
    }
  ]
}

9. Create Social Media

  • Endpoint: POST {{base_url}}/users/social-media/
  • Body:
{
  "name": "Instagram",
  "url": "https://instagram.com/testuser"
}
  • Response:
{
  "status": true,
  "message": "Social media created",
  "data": {
    "id": 1,
    "name": "Instagram",
    "url": "https://instagram.com/testuser"
  }
}

10. Update Social Media

  • Endpoint: PUT {{base_url}}/users/social-media/{id}/
  • Body:
{
  "name": "Updated IG",
  "url": "https://instagram.com/updateduser"
}

11. Delete Social Media

  • Endpoint: DELETE {{base_url}}/users/social-media/{id}/

๐Ÿ“ Project

12. Create Project

  • Endpoint: POST {{base_url}}/projects/

  • Headers: Content-Type: multipart/form-data

  • Body (Form Data):

    • title: "My Project"
    • description: "Project description"
    • category: "Design"
    • image_url: (file)
  • Response:

{
  "status": true,
  "message": "Project created successfully",
  "data": {
    "id": 1,
    "title": "My Project",
    "description": "Project description",
    "category": "Design",
    "image_url": "http://..."
  }
}

13. Update Project

  • Endpoint: PUT {{base_url}}/projects/{id}/
  • Body (Form Data): sama seperti create
  • Response:
{
  "status": true,
  "message": "Project updated successfully",
  "data": {
    "id": 1,
    "title": "Updated Project",
    "description": "Updated description",
    "category": "Updated Category",
    "image_url": "http://..."
  }
}

14. Delete Project

  • Endpoint: DELETE {{base_url}}/projects/{id}/
  • Response:
{
  "status": true,
  "message": "Project deleted successfully"
}

โค๏ธ Likes

15. Add or Remove Like

  • Endpoint: POST {{base_url}}/projects/{id}/likes/

16. Get Likes

  • Endpoint: GET {{base_url}}/projects/{id}/likes/
  • Response:
{
  "status": true,
  "message": "Likes retrieved",
  "data": {
    "likes_count": 5,
    "liked_by": [
      {
        "id": 1,
        "username": "user"
      }
    ]
  }
}

๐Ÿ’ฌ Comments

17. Get Comments

  • Endpoint: GET {{base_url}}/projects/{id}/comments/

18. Create Comment

  • Endpoint: POST {{base_url}}/projects/{id}/comments/
  • Body:
{
  "content": "Great project!"
}
  • Response:
{
  "status": true,
  "message": "Comment created",
  "data": {
    "id": 1,
    "content": "Great project!",
    "user": "testuser"
  }
}

19. Update Comment

  • Endpoint: PUT {{base_url}}/comments/{id}/
  • Body:
{
  "content": "Updated content"
}

20. Delete Comment

  • Endpoint: DELETE {{base_url}}/comments/{id}/

๐Ÿšง Database Models

User

Field Type
username CharField
email EmailField (unique)
position CharField
address TextField
image_url ImageField
created_at DateTime
edited_at DateTime

SocialMedia

Field Type
id_user ForeignKey (User)
name CharField
url CharField
created_at DateTime
edited_at DateTime

Project

Field Type
id_user ForeignKey (User)
title CharField
description TextField
category CharField
file_url CharField (optional)
image_url ImageField
views Integer
created_at DateTime
edited_at DateTime

Comment

Field Type
id_user ForeignKey (User)
id_project ForeignKey (Project)
message TextField
created_at DateTime
edited_at DateTime

Like

Field Type
id_user ForeignKey (User)
id_project ForeignKey (Project)

๐Ÿ› ๏ธ Setup Project Locally

git clone https://github.com/dikrifzn/pameraja-backend.git
cd pameraja-backend
pip install pipenv
pipenv install
pipenv shell
python manage.py migrate
python manage.py runserver

๐Ÿงฐ Tech Stack

  • Django
  • Django REST Framework
  • JWT Authentication
  • PostgreSQL / MySQL (configurable)

๐Ÿ“ฎ For more information, check out the Postman Collection

created by Dikri Fauzan Amrulloh

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages