서강대학교 개설교과목 정보 조회 서비스의 백엔드 서버 입니다.
항상 시간표를 짜기 전, 수강신청을 하기 전 들어가는 '개설교과목정보 사이트'를 사용하며 느꼈던 문제점들을 조금이나마 개선하기 위해 시작하게 된 서비스입니다.
여러 REST API를 제공하고 있습니다.
Git | Docker |
Python | Flask | Swagger | Linux | AWS EC2 | JWT |
MySQL | AWS RDS |
Python | Pandas | Selenium | BeautifulSoup |
functional structure 구조를 사용하여 어떤 동작을 하는지에 따라 파일 구조를 구분하였습니다.
We used functional structure to organize the files of the project by what they do.
.
├── app
│ ├── __init__.py
│ ├── main
│ │ ├── config.py
│ │ ├── controller
│ │ │ └── __init__.py
│ │ ├── __init__.py
│ │ ├── model
│ │ │ └── __init__.py
│ │ └── service
│ │ └── __init__.py
│ └── test
│ └── __init__.py
├── manage.py
└── requirements.txt
사용한 패키지들은 requirements.txt
에 선언되어 있습니다.
pip install -r requirements.txt
here is an example:
import os
host_name = 'yourhostname.com'
username = "name"
password = "password"
database_name = "your database name"
base_dir = os.path.abspath(os.path.dirname(__file__))
class Config(object):
SECRET_KEY = 'your secret key'
algo = 'HS256'
DEBUG = False
class DevelopmentConfig(Config):
SQLALCHEMY_DATABASE_URI = 'your databae url'
DEBUG = True
SQLALCHEMY_TRACK_MODIFICATIONS = False
class ProductionConfig(Config):
SQLALCHEMY_DATABASE_URI = 'your database url'
DEBUG = False
SQLALCHEMY_TRACK_MODIFICATIONS = False
config_by_name = dict(
dev=DevelopmentConfig,
prod=ProductionConfig,
)
key = Config.SECRET_KEY
algorithm = Config.algo
mailConfig = ['[email protected]','email-password']
# $(pwd) = project root directory
docker build -t yourdockerusername/dockerfilename .
docker run -dp 5000:5000 yourdockerusername/dockerfilename
- Create account
- Request Secret Code to User Email
- Confirm Secret Code
- Login
- Logout
- Search User Email
- Password Reset
- Password Change
- User withdrawal
- Get User Favorite Subjects
- Register Favorite subjects
- Get User completed subjects
- Register completed subjects
- Delete Favorite Subjects
- Delete Completed Subjects
- Send report(Q&A) to our team
- Search all Subjects
- Search all Department at Selected Semester
- Search all Subjects by Search Options
- Search Updated Time