Live Site: https://www.umdkusa.com
- Modern Dependency Management: Fully powered by Poetry for seamless package handling.
- Production-Ready Architecture: Deployed on GCP Compute Engine with HTTPS/SSL.
- Security First: Rate-limited authentication, encrypted file uploads, and IP blocking.
Backend: Flask (Python 3.10+) | Database: PostgreSQL
Frontend: HTML5, CSS3, Vanilla JS | Infra: GCP Compute Engine, Nginx, Certbot
git clone https://github.com/umd-kusa/official-website.git
cd official-website
poetry install # Installs all dependencies
Create a .env
file in the root directory:
DATABASE_URL="postgresql://user:password@localhost:5432/kusa_db"
SECRET_KEY="your-random-secret-key" # Used for Flask session encryption
poetry shell # Activates the virtual environment
python run.py # Starts the Flask dev server
- Brute-Force Protection: Blocks IPs after 5 failed login attempts (24-hour cooldown).
- File Upload Safeguards:
- Strict PDF-only policy.
- Configurable size limits via
MAX_FILE_SIZE
in.env
. - Virus scanning for uploaded files (optional GCP integration).
- GCP Compute Engine Setup:
- Ubuntu 22.04 LTS instance with firewall rules allowing HTTPS/HTTP.
- HTTPS Configuration:
sudo certbot --nginx -d umdkusa.com -d www.umdkusa.com - Run as Background Service:
nohup poetry run python run.py & # Persistent execution
Proprietary software owned by the Korean Undergraduate Student Association (KUSA) at the University of Maryland.
Unauthorized use, modification, or distribution is strictly prohibited.
기술 스택: Flask, PostgreSQL, GCP Compute Engine
주요 기능:
- Poetry 기반 의존성 관리
- PDF 전용 안전한 파일 업로드
- HTTPS 암호화 및 IP 차단 시스템
실행 방법:
poetry install
으로 패키지 설치.env
파일에 데이터베이스 URL 설정python run.py
로 서버 실행
Developer: Sueun Cho
E-mail: [email protected]
LinkedIn: LinkedIn
Last Updated: February 05, 2025