개요
프로젝트
- 프로젝트명 :
Hello Word
- 내용 : 코딩도 중요하지만, 개발자의 문서는 대부분 영어로 되어 있기에 영어 공부도 빠뜨릴 수 없다. 따라서, 간단하게 영어 단어를 암기할 수 있는
나만의 단어장
개발을 프로젝트 주제로 선정하였다.
목표
- 기본적인 웹개발 지식을 갖춘다(좁은 범위의 주제로 선정).
- 팀으로 하나되어 서비스를 완성하는 경험을 쌓는다.
- jinja2 템플릿 엔진을 이용한 서버사이드 렌더링을 구현하고, 장점을 파악한다.
- JWT 인증 방식으로 로그인 기능을 구현하고, 세션/쿠키 방식과의 차이점 및 장단점을 파악한다.
팀원
Repository
Wireframes
로그인 페이지
회원가입 페이지
단어 리스트 페이지
API
회원가입 : POST /api/signup
const callback = {
request: {
body: {
id: String,
name: String,
passwd: String
}
},
response: {
data: {
ok: Boolean,
message?: String
}
}
};
로그인 : POST /api/login
const callback = {
request: {
body: {
id: String,
passwd: String
}
},
response: {
data: {
ok: Boolean,
token: String,
message?: String
}
}
};
단어목록 조회 : GET /api/words[?done=Boolean&star=Boolean]
const callback = {
request: {
query-string: {
done?: Boolean,
star?: Boolean
}
},
response: {
data: {
words: [
{
_id: str(ObjectId)
word: String,
mean: String,
done: Boolean,
star: Boolean
}
],
message?: String
}
}
};
단어 추가 : POST /api/words/new
const callback = {
request: {
body: {
word: String,
mean: String,
done: Boolean,
star: Boolean
}
},
response: {
data: {
ok: Boolean,
message?: String
}
}
};
단어 수정 : PUT /api/words/:_id
const callback = {
request: {
params: {
_id: String(ObjectId)
},
body: {
word?: String,
mean?: String,
done?: Boolean,
star?: Boolean
}
},
response: {
data: {
ok: Boolean,
message?: String
}
}
};
단어 삭제 : DELETE /api/words/:_id
const callback = {
request: {
params: {
_id: String(ObjectId)
}
},
response: {
data: {
ok: Boolean,
message?: String
}
}
};
Logic
회원가입
로그인
API 요청