- Express 프레임워크로 구현
- 템플릿 엔진으로 .ejs를 사용
- DB는 MongoDB를 사용
- 홈 화면(비 로그인, 로그인) : 기본 홈 화면으로 게시판 카테고리와 상관없이 가장 최근 게시물 10개를 가져온다. 상단에 공지게시판 자유게시판으로 이동하는 네비게이션 바가 있다. 그리고 홈페이지 이름과 로그인 회원가입 버튼이 있다 (로그인 시 로그아웃 버튼과 '{user}님 안녕하세요' 라는 라벨을 띄운다).
- 게시물 화면(비 로그인, 로그인) : 공지게시판과 자유게시판으로 나누어 각 카테고리에 맞는 게시글만 올라오게 한다. 좌측에 각각의 카테고리로 연결해주는 버튼을 추가한다. 하단에는 페이징기능을 추가한다. 비 로그인 시에는 게시물 작성을 못하나 로그인시 게시물 작성 버튼이 화면에 표시된다.
- 회원가입 화면(비 로그인) : 유저명과 비밀번호, 비밀번호 재확인 입력 폼을 추가한다.
- 게시글 화면(비 로그인, 로그인) : 상단에 제목 중단에 게시글 우측에 작성일과 작성자 조회수를 표시한다. 하단에 목록으로 이동하기 버튼을 추가한다. 로그인시 게시글을 작성한 유저가 맞다면 편집하기 버튼과 삭제하기 버튼을 추가한다.
- 편집 화면(로그인) : 게시글을 불러와 작성할 수 있는 형태의 페이지로 하단에 수정하기 버튼을 눌러 게시글을 편집할 수 있다.
- config : db연결을 위한 환경설정
- controllers : 라우트 처리에 필요한 함수들 .js 파일로 작성
- middlewares : (로그인이 필요한 컨텐츠 이용시)로그인했는지 확인하는 미들웨어 작성
- models : DB 모델 생성
- public : 정적 파일들 저장
- routes : 라우트 처리
- schemas : 모델의 스키마 코드 작성
- views : 화면에 렌더링할 .ejs 파일들 작성 -- category : 게시판 카테고리별 템플릿 파일모음 -- layouts : 레이아웃 파일 작성 -- loginUsers : 로그인한 유저들을 위한 렌더링 파일들 작성 -- noLoginUsers : 비 로그인 유저들을 위한 렌더링 파일들 작성
.env 환경변수 설정 파일(.gitignore에 추가)