- Smilegate Winter Dev Camp x Slimegate Orange Camp
- 개발 기간 : 2019년 1월 14일 ~ 2019년 2월 26일
- 서비스 소개 : 정나미(정치가 나의 미래다)는 국회의원 인기투표 서비스입니다. 자신이 호감/비호감을 느끼는 국회의원에게 투표를 하여 정치적 행동을 하며 민심을 표출할 수 있고 국회의원들은 이를 보고 민심을 즉각적으로 확인 할 수 있습니다.
- 소셜 로그인 (Kakao, Facebook)
- 국회의원 순위 보여주기
- 전체
- 정당별
- 지역별
- 투표 기능
- 기사 보기
- 댓글 기능
- /auth, /cms, /pms, /vote
- /admin
- /commons
- /doc : 발표 자료
- /img : 첨부이미지
- /sqlDump : DB 생성 sql 파일
- /utils : 자주 쓰이는 파일 및 모듈 일부
- 인증 서버
- JWT를 이용하여 사용자에게 토큰을 발급하여 통신시 사용자를 인증하는 용도로 쓰인다
- REDIS에 사용자의 토큰과 접속 시간을 저장하여 연속 접속 인수를 계산한다.
- 의존성
"dependencies": { "cookie-parser": "~1.4.3", "debug": "~2.6.9", "ejs": "^2.6.1", "express": "~4.16.0", "express-session": "^1.15.6", "helmet": "^3.15.0", "http-errors": "~1.6.2", "jade": "~1.11.0", "jsonwebtoken": "^8.4.0", "moment": "^2.24.0", "morgan": "~1.9.0", "passport": "^0.4.0", "passport-kakao": "0.0.5", "passport-local": "^1.0.0", "passport-naver": "^1.0.6", "promise-mysql": "^3.3.1", "rand-token": "^0.4.0", "redis": "^2.8.0", "request": "^2.88.0", "request-promise": "^4.2.4" }```
- 정치인 관리 서버
- 의존성
"dependencies": { "axios": "^0.18.0", "connect-history-api-fallback": "^1.6.0", "cookie-parser": "^1.4.3", "debug": "~2.6.9", "express": "^4.16.4", "express-csp-header": "^2.2.0", "express-paginate": "^1.0.0", "fs": "0.0.1-security", "http-errors": "^1.6.3", "jade": "~1.11.0", "moment": "^2.24.0", "morgan": "^1.9.1", "mysql": "^2.16.0", "mz": "^2.7.0", "path": "^0.12.7", "promise-mysql": "^3.3.1", "pug": "^2.0.3", "redis": "^2.8.0", "request": "^2.88.0", "sync-request": "^6.0.0", "xml2json": "^0.11.2" }```
- 컨텐츠 관리 서버
- 기사 크롤링
- 파이썬을 이용하여 기사를 크롤링하고 스케줄러를 통해 5분마다 기사를 트롤링해온다
- 댓글 관리
- 의존성
"dependencies": { "cookie-parser": "~1.4.3", "debug": "~2.6.9", "express": "~4.16.0", "fs": "0.0.1-security", "http-errors": "~1.6.2", "jade": "~1.11.0", "moment": "^2.24.0", "morgan": "~1.9.0", "node-cron": "^2.0.3", "nodemon": "^1.18.10", "promise-mysql": "^3.3.1", "redis": "^2.8.0" }```
- 기사 크롤링
- 투표 관리 서비스
- 매번 메인 뷰인 전체 투표리스트를 할 때 마다 DB 셀렉을 해올 수 없기 때문에(불필요한 통신) 5분마다 투표 결과를 빌드해놓고 그 결과를 보여준다.
- 의존성
"dependencies": { "async": "^2.6.1", "aws-sdk": "^2.269.1", "cookie-parser": "^1.4.3", "debug": "^2.6.9", "express": "^4.16.3", "helmet": "^3.12.1", "http-errors": "^1.6.3", "jade": "^1.11.0", "jsonwebtoken": "^8.3.0", "moment": "^2.22.2", "morgan": "^1.9.0", "multer": "^1.3.1", "multer-s3": "^2.7.0", "promise-mysql": "^3.3.1" }}```
Node.js - Chrome V8 자바스크립트 엔진으로 빌드된 자바스크립트 런타임
- Express.js - Node.js 웹 애플리케이션 프레임워크
- NPM - 자바 스크립트 패키지 관리자
- PM2 - Express 앱용 프로세스 관리자
- vscode - 편집기
- Mysql - DataBase
- AWS EC2 - 클라우드 환경 컴퓨팅 시스템
- AWS RDS - 클라우드 환경 데이터베이스 관리 시스템
- Python 3
- PyCharm - 편집기
- MYSQL v5.7 (Workbench)
- Sequal Pro
- 김현진 (hyunjkluz)
- 이해은 (ihaeeun)
- 강수진 (sujinnaljin)
기여자 목록을 확인하여 이 프로젝트에 참가하신 분들을 보실 수 있습니다.