리드미 작성
# Sparta News Project
## Overview
Sparta News는 최신 뉴스를 제공하는 웹 애플리케이션입니다. 이 프로젝트는 Django 및 Django REST Framework를 사용하여 구현되었습니다.
## Features
- 뉴스 기사 목록 조회
- 개별 뉴스 기사 상세 조회
- 사용자 인증 (로그인, 로그아웃, 회원가입)
- 뉴스 기사에 대한 CRUD 기능 (인증된 사용자만)
- 댓글 기능
## Sparta News Project API Documentation
### User Management
- **회원가입**
- **Method**: POST
- **URL**: `/api/v1/signup/`
- **Description**: 새로운 사용자를 등록하고 관련 프로필을 생성합니다.
- **Sample Request**:
```json
{
"username": "newuser",
"password": "password123",
"email": "newuser@example.com"
}
```
- **로그인**
- **Method**: POST
- **URL**: `/api/v1/signin/`
- **Description**: 사용자 인증 후 API 접근을 위한 토큰을 제공합니다.
- **Sample Request**:
```json
{
"username": "newuser",
"password": "password123"
}
```
- **프로필 조회**
- **Method**: GET
- **URL**: `/api/v1/profiles/{username}/`
- **Description**: 주어진 사용자 이름에 대한 프로필 정보를 조회합니다.
### News Management
- **뉴스 목록 조회**
- **Method**: GET
- **URL**: `/api/v1/news/`
- **Description**: 시스템에 등록된 모든 뉴스 목록을 조회합니다.
- **뉴스 생성**
- **Method**: POST
- **URL**: `/api/v1/news/`
- **Description**: 새 뉴스 항목을 추가합니다.
- **Sample Request**:
```json
{
"title": "New Article",
"content": "Here is some content",
"author_id": 1
}
```
- **뉴스 상세 조회**
- **Method**: GET
- **URL**: `/api/v1/news/{id}/`
- **Description**: 지정된 ID를 가진 뉴스 항목의 상세 정보를 조회합니다.
- **뉴스 수정**
- **Method**: PUT
- **URL**: `/api/v1/news/{id}/`
- **Description**: 지정된 ID를 가진 뉴스 항목의 정보를 수정합니다.
- **뉴스 삭제**
- **Method**: DELETE
- **URL**: `/api/v1/news/{id}/`
- **Description**: 지정된 ID를 가진 뉴스 항목을 시스템에서 삭제합니다.
## Getting Started
이 섹션에서는 프로젝트를 로컬 시스템에 설치하고 실행하는 방법을 안내합니다.
### Prerequisites
프로젝트를 실행하기 전에 다음 소프트웨어가 설치되어 있어야 합니다:
- Python 3.8 이상
- pip
- virtualenv (선택적)
### Installation
1. GitHub에서 프로젝트를 클론합니다:
```bash
git clone https://github.com/juunsik/sparta_news.git
cd sparta_news
2. 가상 환경을 생성하고 활성화합니다:
python -m venv venv
source venv/Scripts/activate
3. 필요한 패키지들을 설치합니다:
pip install -r requirements.txt
4. 데이터베이스 마이그레이션을 실행합니다:
python manage.py migrate
5. 개발서버를 시작합니다.
python manage.py runserver
이제 브라우저에서 http://127.0.0.1:8000/를 열어 애플리케이션을 사용할 수 있습니다.