-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #77 from chan000518/develop
1차 배포
- Loading branch information
Showing
171 changed files
with
8,341 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,182 @@ | ||
# Created by https://www.toptal.com/developers/gitignore/api/django | ||
# Edit at https://www.toptal.com/developers/gitignore?templates=django | ||
|
||
### Django ### | ||
*.log | ||
*.pot | ||
*.pyc | ||
__pycache__/ | ||
local_settings.py | ||
db.sqlite3 | ||
db.sqlite3-journal | ||
media | ||
|
||
### Django Migrations ### | ||
*initial.py | ||
|
||
# If your build process includes running collectstatic, then you probably don't need or want to include staticfiles/ | ||
# in your Git repository. Update and uncomment the following line accordingly. | ||
# <django-project-name>/staticfiles/ | ||
|
||
### Django.Python Stack ### | ||
# Byte-compiled / optimized / DLL files | ||
*.py[cod] | ||
*$py.class | ||
|
||
# C extensions | ||
*.so | ||
|
||
# Distribution / packaging | ||
.Python | ||
build/ | ||
develop-eggs/ | ||
dist/ | ||
downloads/ | ||
eggs/ | ||
.eggs/ | ||
lib/ | ||
lib64/ | ||
parts/ | ||
sdist/ | ||
var/ | ||
wheels/ | ||
share/python-wheels/ | ||
*.egg-info/ | ||
.installed.cfg | ||
*.egg | ||
MANIFEST | ||
|
||
# PyInstaller | ||
# Usually these files are written by a python script from a template | ||
# before PyInstaller builds the exe, so as to inject date/other infos into it. | ||
*.manifest | ||
*.spec | ||
|
||
# Installer logs | ||
pip-log.txt | ||
pip-delete-this-directory.txt | ||
|
||
# Unit test / coverage reports | ||
htmlcov/ | ||
.tox/ | ||
.nox/ | ||
.coverage | ||
.coverage.* | ||
.cache | ||
nosetests.xml | ||
coverage.xml | ||
*.cover | ||
*.py,cover | ||
.hypothesis/ | ||
.pytest_cache/ | ||
cover/ | ||
|
||
# Translations | ||
*.mo | ||
|
||
# Django stuff: | ||
|
||
# Flask stuff: | ||
instance/ | ||
.webassets-cache | ||
|
||
# Scrapy stuff: | ||
.scrapy | ||
|
||
# Sphinx documentation | ||
docs/_build/ | ||
|
||
# PyBuilder | ||
.pybuilder/ | ||
target/ | ||
|
||
# Jupyter Notebook | ||
.ipynb_checkpoints | ||
|
||
# IPython | ||
profile_default/ | ||
ipython_config.py | ||
|
||
# pyenv | ||
# For a library or package, you might want to ignore these files since the code is | ||
# intended to run in multiple environments; otherwise, check them in: | ||
# .python-version | ||
|
||
# pipenv | ||
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. | ||
# However, in case of collaboration, if having platform-specific dependencies or dependencies | ||
# having no cross-platform support, pipenv may install dependencies that don't work, or not | ||
# install all needed dependencies. | ||
#Pipfile.lock | ||
|
||
# poetry | ||
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. | ||
# This is especially recommended for binary packages to ensure reproducibility, and is more | ||
# commonly ignored for libraries. | ||
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control | ||
#poetry.lock | ||
|
||
# pdm | ||
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. | ||
#pdm.lock | ||
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it | ||
# in version control. | ||
# https://pdm.fming.dev/#use-with-ide | ||
.pdm.toml | ||
|
||
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm | ||
__pypackages__/ | ||
|
||
# Celery stuff | ||
celerybeat-schedule | ||
celerybeat.pid | ||
|
||
# SageMath parsed files | ||
*.sage.py | ||
|
||
# Environments | ||
.env | ||
.venv | ||
env/ | ||
venv/ | ||
ENV/ | ||
env.bak/ | ||
venv.bak/ | ||
myvenv/ | ||
|
||
# Spyder project settings | ||
.spyderproject | ||
.spyproject | ||
|
||
# Rope project settings | ||
.ropeproject | ||
|
||
# mkdocs documentation | ||
/site | ||
|
||
# mypy | ||
.mypy_cache/ | ||
.dmypy.json | ||
dmypy.json | ||
|
||
# Pyre type checker | ||
.pyre/ | ||
|
||
# pytype static type analyzer | ||
.pytype/ | ||
|
||
# Cython debug symbols | ||
cython_debug/ | ||
|
||
**/migrations/**_initial.py | ||
!**/migrations/_init_.py | ||
|
||
|
||
# PyCharm | ||
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can | ||
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore | ||
# and can be added to the global gitignore or merged into this file. For a more nuclear | ||
# option (not recommended) you can uncomment the following to ignore the entire idea folder. | ||
#.idea/ | ||
|
||
# End of https://www.toptal.com/developers/gitignore/api/django |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,18 @@ | ||
# pirogrmming_final_project | ||
# Pirogramming Final Project | ||
## 파크골프원 | ||
: 파크골프 이용자를 위한 플랫폼 | ||
: 파크골프장 위치 및 정보 제공, 파크골프 커뮤니티, 골프 스코어 기록 등의 서비스를 제공합니다. | ||
|
||
### 파크골프원 로고 | ||
![로고1](./docs/parkgolfone_logo1.png) | ||
![로고2](./docs/parkgolfone_logo2.png) | ||
|
||
### .env 파일 설정 | ||
- .env 파일에 우리끼리 공유한 토큰 키 값을 넣어서 사용 | ||
|
||
### 초기 데이터 DB에 업로드 (골프장 data, Region data) | ||
`./server/db_init.sh` | ||
db_init.sh 실행하면 됩니다 | ||
|
||
### 기능 명세서 | ||
https://equable-haddock-22a.notion.site/8a6847ad1dcb4355a0cccea05eeab47e?v=39ccc7b76b724883a271e4e936c58b12&pvs=4 |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
asgiref==3.7.2 | ||
attrs==23.2.0 | ||
certifi==2023.11.17 | ||
cffi==1.16.0 | ||
charset-normalizer==3.3.2 | ||
cryptography==41.0.7 | ||
defusedxml==0.7.1 | ||
Django==5.0.1 | ||
django-allauth==0.60.1 | ||
django-environ==0.11.2 | ||
django-tinymce==3.6.1 | ||
exceptiongroup==1.2.0 | ||
geographiclib==2.0 | ||
geopy==2.4.1 | ||
h11==0.14.0 | ||
idna==3.6 | ||
mysqlclient==2.2.3 | ||
oauthlib==3.2.2 | ||
outcome==1.3.0.post0 | ||
pillow==10.2.0 | ||
pycparser==2.21 | ||
PyJWT==2.8.0 | ||
PySocks==1.7.1 | ||
python-dotenv==1.0.1 | ||
python-social-auth==0.3.6 | ||
python3-openid==3.2.0 | ||
requests==2.31.0 | ||
requests-oauthlib==1.3.1 | ||
selenium==4.17.2 | ||
sniffio==1.3.0 | ||
social-auth-app-django==5.4.0 | ||
social-auth-core==4.5.2 | ||
sortedcontainers==2.4.0 | ||
sqlparse==0.4.4 | ||
trio==0.24.0 | ||
trio-websocket==0.11.1 | ||
typing_extensions==4.9.0 | ||
tzdata==2023.4 | ||
urllib3==2.1.0 | ||
wsproto==1.2.0 |
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
from django.contrib import admin | ||
from apps.communitys import models | ||
# Register your models here. | ||
|
||
admin.site.register(models.Board) | ||
admin.site.register(models.Comment) | ||
admin.site.register(models.Post) | ||
admin.site.register(models.Like) | ||
admin.site.register(models.Scrap) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
from django.apps import AppConfig | ||
|
||
|
||
class CommunitysConfig(AppConfig): | ||
default_auto_field = 'django.db.models.BigAutoField' | ||
name = 'apps.communitys' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
from django import forms | ||
from .models import Board, Post, Comment | ||
from tinymce.widgets import TinyMCE | ||
|
||
# 객체명 : BoardForm | ||
# 목적 : Board 객체의 name, admin 속성을 모두 받아 Form 을 만든다. | ||
class BoardForm(forms.ModelForm): | ||
class Meta(): | ||
model = Board | ||
fields = ('__all__') | ||
|
||
|
||
# 객체명 : PostForm | ||
# 목적 : Post 객체의 title, content, photo 를 입력받아 Form 을 만든다. | ||
class PostForm(forms.ModelForm): | ||
content = forms.CharField(widget=TinyMCE()) | ||
|
||
class Meta: | ||
model = Post | ||
fields = ['title','content', 'photo'] | ||
|
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,76 @@ | ||
from django.db import models | ||
from apps.users.models import * | ||
from apps.locations.models import * | ||
from django.utils import timezone | ||
from tinymce.models import HTMLField | ||
|
||
# 게시판 모델 | ||
class Board (models.Model): | ||
name = models.CharField('게시판이름', max_length=255) | ||
thumbnail = models.ImageField('게시판대표이미지',blank=True, upload_to='communitys/boards/%Y/%m/%d') | ||
admin = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name='작성자') | ||
|
||
def __str__(self): | ||
return self.name | ||
|
||
# 게시글 모델 | ||
class Post (models.Model): | ||
board = models.ForeignKey(Board, on_delete=models.CASCADE, verbose_name='소속 게시판') | ||
title = models.CharField('제목', max_length=255) | ||
content = HTMLField('내용') # 게시물 내용을 html형식으로 쓸수있게 | ||
writer = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name='작성자') | ||
photo = models.ImageField('이미지', blank=True, upload_to='communitys/posts/%Y/%m/%d') | ||
like_num = models.IntegerField(default = 0) # 좋아요 숫자 | ||
scrap_num = models.IntegerField(default = 0) # 스크랩 숫자 | ||
view_num = models.IntegerField(default = 1) # 조회수 | ||
created_date = models.DateTimeField('작성일', auto_created=True, auto_now_add=True) | ||
updated_date = models.DateTimeField('수정일', auto_created=True, auto_now=True) | ||
# tags = models.ManyToManyField(Tag) # 태그 추가시 주석 해제 | ||
|
||
|
||
def __str__(self): | ||
return self.title | ||
|
||
def save(self, *args, **kwargs): | ||
# like_num, scrap_num이 변경되지 않았을 때만 갱신 | ||
if self.like_num == self._original_like_num or self.scrap_num == self._original_scrap_num: | ||
self.updated_date = timezone.now() | ||
|
||
super().save(*args, **kwargs) | ||
|
||
def __init__(self, *args, **kwargs): | ||
super().__init__(*args, **kwargs) | ||
self._original_like_num = self.like_num | ||
self._original_scrap_num = self.scrap_num | ||
|
||
|
||
# 댓글 모델 | ||
class Comment (models.Model): | ||
post = models.ForeignKey(Post, on_delete=models.CASCADE, verbose_name='소속 게시글') | ||
content = models.CharField('내용', max_length=255) | ||
parent_comment = models.ForeignKey('self', null=True, default = None, on_delete=models.CASCADE) | ||
commenter = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name='댓글 작성자') | ||
child_comments_num = models.IntegerField(default = 0) # 대댓글 개수 | ||
|
||
|
||
# 댓글 좋아요 모델 | ||
class CommentLike (models.Model): | ||
comment = models.ForeignKey(Comment, on_delete=models.CASCADE, verbose_name='소속 댓글') | ||
user = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name='유저') | ||
|
||
|
||
# 좋아요 모델 | ||
class Like (models.Model): | ||
post = models.ForeignKey(Post, on_delete=models.CASCADE, verbose_name='소속 게시글') | ||
user = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name='유저') | ||
|
||
# 스크랩 모델 | ||
class Scrap (models.Model): | ||
post = models.ForeignKey(Post, on_delete=models.CASCADE, verbose_name='소속 게시글') | ||
user = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name='유저') | ||
|
||
# 게시판 즐겨찾기 | ||
class Bookmark(models.Model): | ||
board = models.ForeignKey(Board, on_delete=models.CASCADE, verbose_name='소속 게시판') | ||
user = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name='유저') | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
from django.test import TestCase | ||
|
||
# Create your tests here. |
Oops, something went wrong.