검색만으로는 완전히 해결되지 않는 코드와 수업에 관한 질문들...
어쩌면 같이 수업을 듣는 친구들, 조교님, 교수님이 더 잘 알지 않을까?
특정 주제에 대해 서로 질문하고 답변하는 의견을 주고받으며 성장하는 부산대판 스택 오버플로우를 목표로 한다.
멘토링은 그리스 신화에서 유래한 단어이다.
그리스 연합국 중 하나인 이티카의 왕이였던 오디세우스는 전쟁에 나가기 전 어린 아들을 친구 멘토에게 맡겼고
친구는 때로는 엄한 아버지가 되기도 조언자가 되기도 선생이 되기도 하며 아들의 정신적 지주 역할을 잘 감당하였다.
오디세우스가 10년간의 전쟁 이후 돌아왔을때 아들은 놀랍도록 훌륭하게 성장하였다.
오디세우스는 친구에게 "역시 멘토다워" 라고 크게 칭찬하였고
이후 백성들 사이에서 훌륭하게 제자를 교육시킨 사람에게 멘토라는 호칭을 주는 것이 유행하였다. [1]
원래는 풍부한 경험과 지혜를 겸비한 신뢰할 수 있는 사람이 1:1로 지도, 조언을 하는 것만을 의미했지만
현대에는 경험이나 지혜가 풍부하지 않아도 서로 도와가며 배울 수 있는 프로그램, 행사
1:1이 아닌 다수를 지도하거나 조언하는 프로젝트도 멘토링의 범주에 포괄적으로 포함되고 있다.
멘티는 멘토링 활동을 통해 프로그래밍에 대한 흥미와 자존감을 높이고,
협력을 통해 대인 관계 증진과 공동 개발 과정을 체험할 수 있다.
멘토는 알고 있는 지식을 정리하고 다시 되짚어볼 수 있는 계기가 될 수 있으며,
멘티의 변화 과정을 보면서 뿌듯함을 느끼고 자존감을 향상시킬 수 있다.
코딩 역량 관리 시스템은 코딩 역량을 온라인으로 확인하고 교수, 기업체 멘토가 조력하여 코딩 역량을 높일 수 있도록 하는 시스템이다.
오픈소스 SonarQube 기반 코딩 분석 시스템과 관리자, 교수, 조교, 학생, 멘토별 웹 기반 코딩역량 관리 시스템으로 구성된다.
- 멘토링의 의미가 확장되고 있는 만큼 1:1 멘토링 부터 팀별 멘토링, 집단 멘토링을 지원하고자 한다.
- 각 사용자는 팀에 가입할 수 있고 팀별 게시판이 존재한다.
- 멘토링은 질문을 중심으로 진행된다.
- 각 질문은 여러개의 답변을 가질 수 있다.
- 누구나 질문을 올릴 수 있다.
- 질문은 질문자가 설정한 범위(전체, 팀)에 해당하는 사람만 답변할 수 있다.
- 질문에는 태그를 추가하여 태그별로 분류, 검색할 수 있다.
- 질문에는 코드 삽입 및 멘토링에 필요한 다양한 표현이 가능하다.
- 기본 구조
- 헤더
- 네비게이션
- 푸터
- 알림
- 검색
- 로그인
- 회원 가입
- 로그인, 로그아웃
- 로그인 팝업
- 정보 조회
- 질문
- 질문 작성
- 질문 수정
- 질문 삭제
- 질문 상세
- 질문 목록
- 답변
- 답변 작성
- 답변 수정
- 답변 삭제
- 멘토 찾기
- 멘토 목록
- 팀 생성
- 팀 가입
- 팀 탈퇴
- 질문 및 답변 팀
- Node.js >= 14
- MySQL >= 8.0
node.js 설치
MySQL Community Server 설치
npm install
호환성 확보를 위해 Retain MySQL 5.x Compatibility 설정
root password: lsy1020
create database mentoring;
create database session;
use mentoring;
create table team (
id INT PRIMARY KEY AUTO_INCREMENT,
name NVARCHAR(32) unique NOT NULL,
mentorID VARCHAR(16) NOT NULL,
tag varchar(128) default 'PROGRAM' not null
);
create table user (
id VARCHAR(16) PRIMARY KEY ,
pw VARCHAR(32) NOT NULL ,
name NVARCHAR(16) NOT NULL ,
email VARCHAR(32),
phone VARCHAR(16),
type INT NOT NULL DEFAULT 0,
teamID INT,
questionPoint INT NOT NULL DEFAULT 0,
answerPoint INT NOT NULL DEFAULT 0,
image int default 0 not null,
FOREIGN KEY (teamID) REFERENCES Team(id) ON UPDATE CASCADE ON DELETE SET NULL
);
create table question(
id INT PRIMARY KEY AUTO_INCREMENT,
title NVARCHAR(64) NOT NULL ,
userID VARCHAR(16) NOT NULL ,
contents MEDIUMTEXT NOT NULL ,
date datetime DEFAULT current_timestamp,
modifyDate datetime DEFAULT current_timestamp ON UPDATE current_timestamp,
viewRange INT NOT NULL DEFAULT 0,
viewID INT,
tag NVARCHAR(128),
point INT NOT NULL DEFAULT 0,
FOREIGN KEY (userID) REFERENCES user(id) ON UPDATE CASCADE ON DELETE CASCADE
);
create table answer(
id INT PRIMARY KEY AUTO_INCREMENT,
userID VARCHAR(16) NOT NULL ,
contents MEDIUMTEXT NOT NULL ,
date datetime DEFAULT current_timestamp,
modifyDate datetime DEFAULT current_timestamp ON UPDATE current_timestamp,
point INT NOT NULL DEFAULT 0,
questionID INT,
FOREIGN KEY (questionID) REFERENCES question(id) ON UPDATE CASCADE ON DELETE CASCADE
);
ALTER TABLE team
ADD
FOREIGN KEY (mentorID)
REFERENCES user(id) ON UPDATE CASCADE ON DELETE CASCADE;
node ./bin/www
- 이승윤, ileilliat@gmail.com.
- 레이아웃
- 헤더, 네비게이션, 푸터, 검색, 질문 목록, 질문 상세, 답변, 팀 - 기능
- 헤더, 네비게이션, 푸터, 검색, 회원 가입 로그인, 질문 목록, 질문 상세, 답변, 팀 - 데이터베이스
- 보고서
- 개발 배경, 상세 설계, 개발 결과, 개발 일정, 참고 문헌
- 심재영, jysim0129@naver.com.
- 레이아웃
- 회원 가입, 로그인, 홈, 로그인 팝업, 프로필 조회, 질문 작성, 멘토 목록, 사진 - 기능
- 홈, 로그인 팝업, 프로필 조회, 질문 작성, 멘토 목록 - 보고서
- 개발 배경, 개발 개요, 상세 설계, 참고 문헌
- MDN web docs, https://developer.mozilla.org
- w3schools.com, https://www.w3schools.com/sql
- TCP school, http://www.tcpschool.com/
- Microsoft docs, https://docs.microsoft.com/ko-kr/
- npm, https://www.npmjs.com/
- Express, https://expressjs.com/ko/guide
- Passport, http://www.passportjs.org/
- Quill, https://quilljs.com/
- Material design, https://material.io/develop/web
- Stack overflow, https://stackoverflow.com/
- Unsplash, https://unsplash.com/
- Mozilla Public License 2.0