Skip to content

영남대학교 컴퓨터공학과 학과 사물함 예약 시스템

Notifications You must be signed in to change notification settings

jjaegii/lockerReservation

Repository files navigation

🐯 영남대학교 컴퓨터공학과 사물함 예약 시스템

최초 배포 버전 개발 기간 : 2023.02 ~ 2023.03

영남대 컴퓨터공학과 학생들을 위한 사물함 예약 시스템

배포 진행했던 링크 - yucselocker.site (현재 예약 종료, 매년 초 오픈)


💪Installation

프로젝트 빌드하기

  1. 파이썬 패키지 설치

    $ pip install -r requirements.txt
  2. Flutter 빌드

    2.1. 수동 빌드

    $ cd lockerReservation/Flutter/locker_reservation_system
    $ flutter build web

    Flutter/locker_reservation_system/web/ 내부 파일들을 Django/flutter_web_app으로 이동

    2.2. 스크립트를 사용한 자동 빌드

    🔥 빌드 파일 .gitignore에 추가함으로써 pull request 후 merge 시 필수적으로 시행해야하는 동작
    1. flutter 프로젝트 디렉토리로 이동

      $ cd Flutter/locker_reservation_system
    2. 빌드 자동화 셸 스크립트 실행

      $ sh moveBuildFile.sh
  3. 배포

    3.1. uwsgi 실행

    $ cd Django
    
    $ uwsgi --ini uwsgi.ini

    3.2. Nginx 설치/설정

    $ sudo apt-get install nginx
    
    $ sudo vi /etc/nginx/nginx.conf
    >
    # http에 upstream django 추가
    http {
        upstream django {
            server unix:{프로젝트 폴더 경로}/uwsgi.sock;
        }
    }
    
    $ sudo vi /etc/nginx/sites-enabled/default
    >
    location / {
        # try_files $uri $uri/ =404; 삭제
        include /etc/nginx/uwsgi_params;
        uwsgi_pass django;
    }
    
    $ sudo service nginx restart

    3.3. letsencrypt https 적용

    $ sudo apt-get install python3-certbot-nginx
    
    $ sudo certbot --nginx -d yucselocker.site
    >
    # 이메일, 이용 동의 등 입력
    1: No redirect - Make no further changes to the webserver configuration.
    2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
    new sites, or if you're confident your site works on HTTPS. You can undo this
    # 1 : http->https 자동 리다이렉트 지원 X
    # 2 : http->https 자동 리다이렉트 지원 O

사물함 데이터 처리

  1. 연장 신청 데이터 -> 데이터베이스 추가

    data_processing/excel_processing/2023 컴퓨터공학과 사물함 연장 신청.xlsx

    의 양식은 아래와 같다.

    엑셀양식

    연장신청 액셀 데이터 설정이 완료되었다면

    data_processing 디렉토리에서

    $ bash run.sh migrate
  2. 사물함 예약 데이터베이스 -> UI로 결과 출력

    $ bash run.sh result

    실행하여 생긴 locker_state.png를 사용하면 됨.

💻 개발/배포 환경

😇 Frontend

Module                  Version
Flutter                 3.7.6
cupertino_icons         1.0.2
provider                6.0.5
fluro                   2.0.5
http                    0.13.5
flutter_dotenv          5.0.2
flutter_svg             2.0.2
crypto                  3.0.2
url_strategy            0.2.0

😎 Backend

Package                 Version
Python                  3.9
asgiref                 3.6.0
autopep8                2.0.1
backports.zoneinfo      0.2.1
certifi                 2022.12.7
cffi                    1.15.1
charset-normalizer      3.0.1
cryptography            39.0.1
Django                  4.1.6
django-cors-headers     3.13.0
django-filter           22.1
django-session-timeout  0.1.0
djangorestframework     3.14.0
idna                    3.4
pycodestyle             2.10.0
pycparser               2.21
pytz                    2022.7.1
requests                2.28.2
six                     1.16.0
sqlparse                0.4.3
tomli                   2.0.1
urllib3                 1.26.14
uWSGI                   2.0.21

Data Processing

Module                  Version
et-xmlfile              1.1.0
numpy                   1.24.2
opencv-python           4.7.0.72
openpyxl                3.1.2
pandas                  1.5.3
Pillow                  9.4.0
python-dateutil         2.8.2
pytz                    2022.7.1
six                     1.16.0

Demo

  • 메인화면 Untitled

    (로그인 후 좌측 사물함 위치 버튼 눌렀을 때) 2

  • 로그인 3

  • 회원가입 4

  • 채널톡 5

  • 결과 출력 locker_state

👩‍👩‍👧‍👦 Contributors


정승균

원준영

김재현

최재혁

About

영남대학교 컴퓨터공학과 학과 사물함 예약 시스템

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published