Skip to content

jmj3047/zipfilx-home

Repository files navigation

README

Python PostgreSQL Heroku Keras Numpy Pandas Psycopg2 Flask Flask-python gitdb jupyter jupyter Kakao

About

집플릭스는 무주택자를 위한 대출 상품 조회 및 금리계산서비스를 위한 카카오톡 챗봇서비스를 이용한 프로젝트이다.

집플릭스는 Database로 PostgreSQL,pgAdmin 와 Webserver로 Heroku, 챗봇툴인 Kakao open builder를 연결시키기 위해 Python로 작성하여 Keras, numpy, pandas, psycopg2, Flask, GitPython 라이브러리를 사용하여 프로젝트가 진행되었다.

Installation from sources

Packages

  • Installing essential packages in python

    Flask pandas psycopg2 numpy math json

Requirements.txt

	certifi==2021.10.8
	charset-normalizer==2.0.12
	click==8.1.3
	colorama==0.4.4
	et-xmlfile==1.1.0
	Flask==2.1.2
	gunicorn==20.1.0
	idna==3.3
	importlib-metadata==4.11.3
	itsdangerous==2.1.2
	Jinja2==3.1.2
	MarkupSafe==2.1.1
	numpy==1.22.3
	openpyxl==3.0.9
	pandas==1.4.2
	python-dateutil==2.8.2
	pytz==2022.1
	requests==2.27.1
	six==1.16.0
	urllib3==1.26.9
	Werkzeug==2.1.2
	xlrd==2.0.1
	zipp==3.8.0
	psycopg2==2.8.6

How to Use

	git clone
	git clone ~..git

	Install virtual environment
	$ virtualenv venv

	Install library
	$ pip install -r requirements.txt

	Run
	$ python main.py

Algorithm

  • 대출상품 조회 서비스

    • search_pro_buy(number01,number02,number03,number04,number05)
      • 매매 상품 조회에 필요한 값을 argument로 받는다.

        number01 - 무주택 세대주 여부

        number02 - 연령대

        number03 - 혼인여부 및 기간

        number04 - 부부합산 연 소득

        number05 - 순자산가액

      • 각 상품별 조건문에서 argument에 따라 출력될 상품의 번호를 리스트 형태로 저장한다.

      • 연동된 데이터베이스에서 상품 정보를 import한 후, 위의 리스트에 저장된 상품 번호에 해당하는 정보를 문자열로 출력한다.

    • search_buy()
      • 카카오톡 챗봇에서 사용자에게 입력받은 값을 json 형태로 불러온 후 value 값을 각 변수에 저장한다.
      • search_pro_buy를 호출하고 위의 변수를 argument로 지정한다.
      • 위의 함수의 반환값을 dictinary 형태로 반환한다.
    • search_pro_borrow(number01,number02,number03,number04,number05)
      • 전세 상품 조회에 필요한 값을 argument로 받는다.

        number01 - 무주택 세대주 여부

        number02 - 연령대

        number03 - 혼인여부 및 기간

        number04 - 부부합산 연 소득

        number05 - 순자산가액

      • 각 상품별 조건문에서 argument에 따라 출력될 상품의 번호를 리스트 형태로 저장한다.

      • 연동된 데이터베이스에서 상품 정보를 import한 후, 위의 리스트에 저장된 상품 번호에 해당하는 정보를 문자열로 출력한다.

    • search_borrow()
      • 카카오톡 챗봇에서 사용자에게 입력받은 값을 json 형태로 불러온 후 value 값을 각 변수에 저장한다.
      • search_pro_borrow를 호출하고 위의 변수를 argument로 지정한다.
      • 위의 함수의 반환값을 dictinary 형태로 반환한다.
  • 금리계산 서비스

    • calc_pro_buy(number01,number02,number03,number04)
      • 매매 대출 상품 별 금리 계산을 위한 값을 argument로 받아주는 함수
      • amount = number01, period = number02, income = number03, method = number04
      • 각 상품의 조건별 우대금리를 데이터 프레임 형태로 저장해 놓은 후, 들어온 값에 따라 우대금리를 반환한다
      • 만기일시상환, 원리금균등상환, 원금균등상환 방식별로 납입금액을 계산한다
      • 결과적으로 대출금액, 대출기간, 상환방법, 적용 금리, 총 이자액을 사용자에 출력해준다
    • calc_buy()
      • 카카오톡 챗봇에서 사용자에게 입력받은 값을 json 형태로 불러온 후 value 값을 각 변수에 저장한다.
      • calc_pro_buy를 호출하고 위의 변수를 argument로 지정한다.
      • 위의 함수의 반환값을 dictinary 형태로 반환한다.
    • calc_pro_year(number01,number02,number03,number04,number05)
      • 전세 대출 상품 별 금리 계산을 위한 값을 argument로 받아주는 함수
      • amount = number01, period = number02, income = number03, method = number04, deposit = number05
      • 각 상품의 조건별 우대금리를 데이터 프레임 형태로 저장해 놓은 후, 들어온 값에 따라 우대금리를 반환한다
      • 만기일시상환, 원리금균등상환, 원금균등상환 방식별로 납입금액을 계산한다
      • 결과적으로 대출금액, 대출기간, 상환방법, 적용 금리, 총 이자액을 사용자에 출력해준다
    • calc_borrow_year()
      • 카카오톡 챗봇에서 사용자에게 입력받은 값을 json 형태로 불러온 후 value 값을 각 변수에 저장한다.
      • calc_pro_year를 호출하고 위의 변수를 argument로 지정한다.
      • 위의 함수의 반환값을 dictinary 형태로 반환한다.
    • calc_pro_month(number01,number02,number03)
      • 월세 대출 상품 별 금리 계산을 위한 값을 argument로 받아주는 함수
      • amount = number01, period = number02, method = number03
      • 각 상품의 조건별 우대금리를 데이터 프레임 형태로 저장해 놓은 후, 들어온 값에 따라 우대금리를 반환한다
      • 만기일시상환, 원리금균등상환, 원금균등상환 방식별로 납입금액을 계산한다
      • 결과적으로 대출금액, 대출기간, 상환방법, 적용 금리, 총 이자액을 사용자에 출력해준다
    • calc_borrow_month()
      • 카카오톡 챗봇에서 사용자에게 입력받은 값을 json 형태로 불러온 후 value 값을 각 변수에 저장한다.
      • calc_pro_month를 호출하고 위의 변수를 argument로 지정한다.
      • 위의 함수의 반환값을 dictinary 형태로 반환한다.

Connecting Database

  • Postgre SQL 에 Import 되어진 데이터베이스를 Heroku와 연동하는 부분이다.

    db=psycopg2.connect(host='ec2-52-86-115-245.compute-1.amazonaws.com',dbname='d6b5cq66b2ua5t',user='wtpphkajtmedfy',password='*************************',port=5432)
        cursor = db.cursor()
        cursor.execute('SELECT * FROM realzip')
        rows=cursor.fetchall()

    <postgre SQL에 탑재된 사용자 DB의 host,dbname,user,password 를 parameter로 하는 connect() 함수를 이용하여 Heroku와 연동시켜준다.>

  • 위의 코드로 사용자의 db에 연동이 된다면, heroku sever를 통해, postgre SQL 에 탑재된 데이터를 자유자재로 이용 할 수 있다. 이후, Kakaotalk open builder를 통해 사용자의 input 을 제공받아, database를 이용하였다.

    Untitled

Sever

  • heroku server의 main.py에 작성한 코드들을 카카오톡 오픈빌더 서비스와 연결하는 부분이다.

    @app.route('/api/search_borrow', methods=['POST'])
    def search_borrow():
    ...
        return responseBody

    ‘/api/search_borrow’ 부분이 함수의 해당 url이며 카카오톡 스킬서버에 연결할 핵심이 된다.

  • heroku에 로그인 후 해당 프로젝트의 settings> Domain을 보면 기본 url을 얻을 수 있다.

  • https://your_project_name.herokuapp.com/이 기본 형태이고 카카오톡에 업로드 할때는 스킬서버에 먼저 url(https://your_project_name.herokuapp.com/api/search_borrow) 올리고

    Untitled

  • 답변을 원하는 해당 시나리오 블록의 파라미터 설정에서 저장한 스킬을 선택해준다.

    Untitled

  • 그리고 봇 응답에서 스킬데이터 사용을 눌러주면 된다.

    Untitled

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published