본문 바로가기
-----ETC2-----/Python

[Python] Week 23-24: 최종 프로젝트

by cogito21_python 2024. 6. 1.
반응형

Day 1: 프로젝트 주제 선정 및 계획 수립

  • 강의 내용:
    • 프로젝트 주제 선정
      • 팀별 또는 개인별 프로젝트 주제 선정
      • 프로젝트 주제 발표 및 논의
    • 프로젝트 계획 수립
      • 프로젝트 목표 설정
      • 주요 기능 및 요구사항 정의
      • 개발 일정 및 마일스톤 설정
  • 실습:
    • 프로젝트 주제 선정 및 계획 수립
# 프로젝트 주제 예제
# 1. 블로그 플랫폼
# 2. 온라인 상점
# 3. 채팅 애플리케이션
# 4. 도서 관리 시스템
# 5. 데이터 분석 도구

# 팀 또는 개인별로 프로젝트 주제를 선정하고 목표 설정
project = {
    "title": "Online Shop",
    "goal": "Build an e-commerce platform where users can browse, search, and purchase products.",
    "features": [
        "User registration and login",
        "Product listing and search",
        "Shopping cart",
        "Order management",
        "Payment integration"
    ],
    "timeline": {
        "week_1": "Set up project structure and database",
        "week_2": "Implement user authentication",
        "week_3": "Develop product listing and search",
        "week_4": "Integrate shopping cart and payment"
    }
}

print("Project Plan:")
for key, value in project.items():
    print(f"{key}: {value}")

 

Day 2: 프로젝트 구조 설정 및 초기 개발

  • 강의 내용:
    • 프로젝트 구조 설정
      • 폴더 및 파일 구조 설정
      • 버전 관리 도구(Git) 설정
    • 초기 개발
      • 기본 환경 설정 및 초기 코드 작성
  • 실습:
    • 프로젝트 구조 설정 및 초기 개발 진행
# 프로젝트 구조 설정 예제
my_project/
├── README.md
├── requirements.txt
├── .gitignore
├── src/
│   ├── __init__.py
│   ├── app.py
│   ├── models.py
│   ├── views.py
│   └── utils.py
├── templates/
│   └── base.html
└── static/
    └── styles.css

# Git 초기화 및 첫 커밋
git init
git add .
git commit -m "Initial project setup"

 

Day 3-4: 주요 기능 개발 (1단계)

  • 강의 내용:
    • 1단계 기능 개발
      • 사용자 인증 시스템 구현
      • 데이터베이스 모델 설정 및 마이그레이션
    • 코드 리뷰 및 피드백
  • 실습:
    • 사용자 인증 시스템 및 데이터베이스 모델 개발
# 사용자 인증 시스템 예제
from flask import Flask, request, redirect, render_template
from flask_sqlalchemy import SQLAlchemy
from werkzeug.security import generate_password_hash, check_password_hash

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///users.db'
db = SQLAlchemy(app)

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(150), unique=True, nullable=False)
    password = db.Column(db.String(150), nullable=False)

@app.route('/register', methods=['GET', 'POST'])
def register():
    if request.method == 'POST':
        username = request.form['username']
        password = generate_password_hash(request.form['password'], method='sha256')
        new_user = User(username=username, password=password)
        db.session.add(new_user)
        db.session.commit()
        return redirect('/login')
    return render_template('register.html')

@app.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == 'POST':
        username = request.form['username']
        password = request.form['password']
        user = User.query.filter_by(username=username).first()
        if user and check_password_hash(user.password, password):
            return redirect('/dashboard')
        return 'Invalid credentials'
    return render_template('login.html')

if __name__ == '__main__':
    db.create_all()
    app.run(debug=True)

 

Day 5-7: 주요 기능 개발 (2단계)

  • 강의 내용:
    • 2단계 기능 개발
      • 제품 목록 및 검색 기능 구현
      • 장바구니 및 주문 관리 시스템 구현
    • 코드 리뷰 및 피드백
  • 실습:
    • 제품 목록 및 검색 기능, 장바구니 및 주문 관리 시스템 개발
# 제품 목록 및 검색 기능 예제
class Product(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(150), nullable=False)
    price = db.Column(db.Float, nullable=False)
    description = db.Column(db.String(500), nullable=False)

@app.route('/products')
def products():
    search_query = request.args.get('q')
    if search_query:
        products = Product.query.filter(Product.name.contains(search_query)).all()
    else:
        products = Product.query.all()
    return render_template('products.html', products=products)

# 장바구니 및 주문 관리 예제
cart = []

@app.route('/add_to_cart/<int:product_id>')
def add_to_cart(product_id):
    product = Product.query.get(product_id)
    cart.append(product)
    return redirect('/cart')

@app.route('/cart')
def view_cart():
    total = sum([product.price for product in cart])
    return render_template('cart.html', cart=cart, total=total)

@app.route('/checkout', methods=['POST'])
def checkout():
    # 결제 처리 로직 추가
    cart.clear()
    return 'Order placed successfully'

 

Day 8-10: 기능 통합 및 테스트

  • 강의 내용:
    • 기능 통합
      • 각 모듈 및 기능 통합
      • 전체 시스템 테스트
    • 버그 수정 및 최적화
  • 실습:
    • 통합 테스트 및 버그 수정
# 기능 통합 및 테스트
# 1. 모든 기능을 통합하고 각 모듈의 상호작용을 확인
# 2. 전체 시스템 테스트를 통해 버그 및 오류 수정
# 3. 최적화 및 성능 개선 작업 수행

 

Day 11-14: 프로젝트 문서화 및 최종 준비

  • 강의 내용:
    • 프로젝트 문서화
      • README 작성
      • 사용 설명서 및 API 문서 작성
    • 최종 발표 준비
      • 발표 자료 준비
      • 데모 시연 준비
  • 실습:
    • 프로젝트 문서화 및 발표 준비
# 프로젝트 문서화 예제
# README.md 작성
"""
# Online Shop

## 프로젝트 소개
이 프로젝트는 사용자들이 상품을 검색하고 구매할 수 있는 온라인 쇼핑 플랫폼입니다.

## 주요 기능
- 사용자 등록 및 로그인
- 제품 목록 및 검색
- 장바구니 및 주문 관리

## 설치 및 실행
1. 레포지토리 클론
2. 필요한 패키지 설치: `pip install -r requirements.txt`
3. 데이터베이스 초기화: `python src/app.py`
4. 서버 실행: `python src/app.py`
"""

 

Day 15-20: 최종 프로젝트 발표 및 피드백

  • 강의 내용:
    • 최종 프로젝트 발표
      • 팀별 또는 개인별 프로젝트 발표
      • 프로젝트 데모 시연
    • 피드백 및 토론
      • 피드백 제공 및 토론
      • 프로젝트 개선점 논의
  • 실습:
    • 프로젝트 발표 및 피드백 세션
# 최종 프로젝트 발표 및 피드백
# 1. 각 팀 또는 개인이 프로젝트를 발표하고 데모 시연
# 2. 강사 및 다른 팀원들로부터 피드백을 받고 개선점 논의
# 3. 프로젝트의 성공 사례와 도전 과제를 공유하고 배운 점을 정리

 

이 강의는 파이썬의 전반적인 학습 내용을 종합하여 최종 프로젝트를 완성하는 것을 목표로 합니다. 프로젝트는 실습 중심으로 진행되며, 각 팀 또는 개인이 선택한 주제를 바탕으로 프로젝트를 구현하고 발표하게 됩니다. 다음 주차에 대한 추가 내용이나 다른 주제를 원하시면 말씀해 주세요!

 

 

반응형