Code Monkey home page Code Monkey logo

sejongcodingchatbot's Introduction

SJ Coding Helper

세종대학교 학생들을 위한 코딩 도우미 플랫폼 “SJ Coding Helper

Untitled

💡 Background

  • 코딩 수업을 처음 접하는 비전공자, 신입생 학생
  • 학생 수에 비해 부족한 조교 학생 수
  • 실시간 소통이 불가한 기존 시스템
  • 조교 인권이 보장되지 않는 기존 시스템
  • 학습 자료를 찾기 힘든 신입생

📚 Stack & Library

  • Spring-boot, Spring JPA, Flask, Mysql, Nginx, Docker, AWS EC2, AWS RDS, Tensorflow, React.js
  • Java, Python, Javascript
  • zt-exec

👩‍💻 Project Features

1. 코딩 Q&A 챗봇 기능

☑️ 코딩 수업을 수강하는 학생들이 시간 제약을 받지 않고 실시간으로 챗봇에게 질문 가능 ☑️ 사용자 질문 문장에서 불용어 제거 후 키워드 추출 → 딥러닝 모델을 통해 사용자 질문에서 의도, 개체명 인식 → 인식한 의도, 개체명 키워드를 이용하여 답변 검색 ☑️ 사용자 질문 키워드 추출 → TF-IDF, 코사인 유사도를 통한 키워드 유사도 → 유서도 높은 질문 추천

2. 코드 컴파일러 기능

☑️ 편리한 웹 컴파일 환경 제공 ☑️ zt-exec Library를 사용해 서버 gcc Compiler, python3 에 접근한 다음 결과 값 추출 ☑️ 조교에게 코드 및 입 출력 결과 간편 전송 가능

3. TA조교와 채팅기능

☑️ 챗봇으로 해결되지 않은 문제를 TA조교와 1대 1 채팅 질문 ☑️ 코드 컴파일러에서 오류 발생 시 TA조교에게 질문 가능

🎞️ Service UI

사용자 서비스

1. 챗봇 채팅 페이지

Untitled

2. 웹 컴파일러 페이지

Untitled

Untitled

Untitled

3. TA조교 채팅 페이지

Untitled

🛠️ Architecture

Untitled

💭 I Learned

  • 처음으로 Infra 구축을 해봤습니다. 배포 플로우를 짤 줄 알게 되었습니다.
  • 무중단 배포 서비스를 위해 Nginx에서 로드 밸런싱 설정을 해줬습니다. 각 웹 어플리케이션들을 도커 컨테이너로 관리해주었고, 포트 포워딩을 함으로 써 하나의 웹 서버로 관리할 수 있게 설정해주었습니다.
  • Spring-boot에서 시스템에 있는 Gcc컴파일러나 Python3를 실행할 때 자원에 대한 보안과 타임아웃을 고려해 zt-exec 라이브러리를 사용하였습니다. docker 컨테이너 내부에서 유저 모드로 웹 어플리케이션을 실행하고 시스템에 접근하는 유저 모드 권한을 뺏음으로써 보안 강화를 하였습니다.
  • JPA를 도입하고, 채팅 시스템에서 다대다, 일대다 환경을 고려해주어 무결성을 지켰습니다.
  • Mysql 사용해 스키마 구성을 하고, Spring-boot에서 챗봇, 채팅, 컴파일러 REST API 구축 하였습니다.

📺 Service Video

https://www.youtube.com/watch?v=2Y8-H26Ypds

sejongcodingchatbot's People

Contributors

jeongsangbyuk avatar taesunpark avatar ykpark3 avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.