Giter VIP home page Giter VIP logo

workcongw's Introduction

WorkConGW

프로젝트 소개 :

WorkConGW(신 그룹웨어)

기업에 필요한 기능을 제공하는 웹기반 그룹웨어를 목표로 진행했습니다.

실제 상용화되고 있는 그룹웨어 프로젝트를 참고하여 제작했습니다.

추가적으로 깃허브 프로젝트, 이슈관리, 마일스톤 기능을 착안하여 제작했습니다.

개발 기간 및 작업 관리

개발 기간

  • 전체 개발 기간 : 2024-01-01 ~ 2024-03-12
  • 문서 작업 및 설계기간 : 2024.01.01 ~ 2024.02.01
  • UI 구현 : 2024-02-02 ~ 2024-02-10
  • 기능 구현 : 2022-02-11 ~ 2022-02-29

작업 관리

  • GitHub Projects와 Issues를 사용하여 진행 상황을 공유했습니다.
  • 주간회의를 진행하며 작업 순서와 방향성에 대한 고민을 나누고 슬랙를 통해 회의 내용을 기록 했습니다.

주요 문서

🎯 요구사항 정의서 링크

🎯 기능 정의서: 링크

🎯 테이블 정의서: 링크

🎯 화면정의서: 링크

🎯 깃가이드: 링크

🎯 개발표준 정의서: 링크

🎯 WBS: 링크

🎯 시나리오 테스트: 링크

🎯 ERD: 링크

논 외

🎆 ERD 설명서: 링크

🎆 상관 모델링 링크

🎆 발표ppt: 링크


팀원 구성

오지환 정태연 강우형 이휘재

@Ohsaam

@jungtaeyeon

@woohyungkang

@ihwijae

역할 분담

🍊오지환(팀장)

  • 문서

    • 요구사항정의서
    • 화면정의서
    • 기능명세서
    • WBS(일정관리)
    • ERD 설계
    • ERD 설명서
    • 상관모델링
  • 기능

    • 로그인 기능 구현(비크립트를 사용한 암호화 진행)
    • 아이디 찾기/비밀번호 찾기 기능 구현(임시비밀번호 전송)
    • 마이페이지 구현(이미지 등록 / 및 사인 등록)
    • 대시보드를 사용할 수 있고, 사원에 대한 권한을 갖고 있는 관리자 기능 구현
    • 디비에 작성자가 저장되지 않는 "완전한 익명게시판" 기능 구현
    • 사용자가 등록한 사인을 사용하여 전자결재를 진행할 수 있는 기능 구현
    • paginationinfo를 이용한 페이징 처리 VO제작 및 공통코드 제작

👻정태연(깃 담당)

  • 문서

    • 요구사항정의서
    • 화면정의서
    • 기능명세서
    • WBS(일정관리)
    • 테스트 시나리오
    • 깃 가이드
    • 풀테스트 진행 후 발표 전 시나리오 테스트 진행
  • 기능

    • 사내공지게시판 기능 구현 (MultipartFile을 사용한 파일 업로드)
    • 프로젝트 기능 구현 (프로젝트에 속한 이슈 상태 변경)
    • 이슈 기능 구현 (댓글을 통한 이슈 이력관리)
    • 마일스톤 기능 구현 (개인이 원하는 이슈 모아서 관리)
    • SummerNote 에디터 라이브러리를 통한 공통 코드 제작 (이미지 업로드, 삭제 구현)
    • Treeview 라이브러리를 통한 공통 코드 제작

😎강우형

  • 문서

    • 요구사항정의서
    • 화면정의서
    • 기능명세서
    • WBS(일정관리)
    • 풀테스트 진행 후 발표 전 시나리오 테스트 진행
  • 기능

    • 홈대시보드 각 리스트 노출 구현 및 대시보드 수정 기능 구현(대시보드 각 컨텐츠 on/off 기능)
    • 주소록 등록 기능 구현(외부/내부 주소록)
    • 주소록 공유 기능 구현(A->B로 주소록 공유)
    • 주소록 그룹 기능 구현(태그형태로 각 주소록에 그룹 기능)
    • 메세지 기능 (A->B로 메시지 전송)
    • 출근/퇴근 기능(버튼 클릭시 디비로 전송)
    • 각 출근/퇴근시간에 맞는 상태 표시 기능(상태로는 정상출근/퇴근/지각/야근/연차 구현)
    • 이달의 근태 통계 (해당달에 평일 일수에서 정상출근/퇴근/야근으로 비율 통계)
    • 부서근태조회(조직도 TREEVIEW를 통해 부서/팀/개인 근태 조회 가능)
    • 전체 그룹웨어 CSS 수정(공통 코드 작업 및 디자인 변경)

🐬이휘재

  • 문서

    • 요구사항정의서
    • 화면정의서
    • 기능명세서
    • 테이블 정의서
    • WBS(일정관리)
    • PPT 작성
  • 기능

    • 일정관리 기능 구현

      • 일정의 종류에는 부서,팀,개인이 존재하고,
      • 부서일정 등록은 부서장의 권한을 가진 사용자만 가능하다 일반 권한을 가진 사용자는 속한 팀의 일정만 등록가능
      • 일정 조회는 부서장은 속한 부서와 하위 모든 팀의 일정조회가 가능, 일반 권한은 속한 부서의 일정과, 자신이 속한 팀의 일정만 조회 가능
      • 일정 삭제는 일정을 등록한 사람만 가능
      • 일정 수정도 등록한 사람만 가능
    • 시설예약 기능 구현

      • 회의실 등록(관리자 권한만 가능),
      • 조회도 관리자만 가능 (수정, 삭제도 위와 동일)
      • 위의 기능은 관리자만 볼 수 있는 관리 메뉴가 따로 존재
    • 시설공지 기능 구현

      • 공지사항 등록(관리자만 가능)
      • 조회 (모든 권한 가능)
      • 삭제 (관리자만 가능)
  • 시설민원 기능 구현

    • 민원 등록(모든권한 가능) ,조회(관리자는 모든 민원을 볼 수 있고, 일반권한은 자신이 등록한 민원만 조회 가능

    • 삭제(민원을 등록한 사람만 가능)


시작 가이드

Installation

$ git clone [https://github.com/Ohsaam/bookSideProject.git](https://github.com/jungtaeyeon/WorkConGW.git)
$ cd WorkConGW

Group

  • SLACK
  • GOOGLE

Stacks 🐈

Environment

  • Visual Studio Code
  • Git
  • Github
  • INTELLIJ IDEA

Development

  • Java
  • Spring
  • BootStrap
  • Oracle
  • J

프로젝트 구조 : 링크(클릭 시 자세한 프로젝트 디렉토리가 노출됩니다.)

🎊페이지별 핵심 기능

✨로그인

로그인 처리(깃)
  • 로그인은 권한별 기능 (시스템/일반유저) 총 2가지로 구성

  • 인터셉터를 통한 txt 파일 저장

✨관리자

관리자 처리(깃)
  • 현재 접속중인 접속자 리스트 : 부서 및 팀별로 접속인원을 카운트 및 현재 접속중인 사용자 표시
  • 이번주 신규 입사자 수 : 사원/대리/차장/과장/부장/합계 순서대로 노출(새로고침 시 막대그래프 색깔이 변경된다.)
  • 사내공지글 등록 : 관리자는 사내공지 작성 가능 / 필독 및 일반공지 작성 가능
  • 민원함 리스트 : 시설 예약 관련된 민원 확인 가능

✨사원 등록 및 이메일 인증

클라이언트로부터 “회원가입 기능이 따로 존재하지 않고, 관리자가 회원등록을 하는 요구사항를” 받았다는 컨셉으로 진행

관리자 처리(깃)
관리자 처리(깃)
  • 다음 우편주소 api를 사용
  • 조직도 TreeView라이브러리 사용
  • 이메일로(인증/인가)처리
  • 정규식을 이용하여 “영문자 / 숫자 / 특수문자 1개를 포함”
  • 인증 시 로그인 페이지로 이동

✨부서등록

관리자 처리(깃)
  • 부서 및 팀명칭을 입력,중복확인을 진행
  • 상위부서 선택
  • 등록한 회원을 지금 추가한 팀에 옮김
  • 사원 수정 팀 반영

✨로그인 기록 & 업무시간설정

만약에 워크샵을 간다고 가정하면, 출/퇴근 시간이 변경 + 그 때 업무시간 설정을 해야 되기 때문에 해당 기능 추가

관리자 처리(깃)
  • 업무시간 설정 가능
  • 관리자는 6시 이후로 시간 변경이 가능(금일 적용이 아닌 6시로부터 8시간 뒤 반영되어 출/퇴근 시간이 변경)

✨홈화면(대시보드/출,퇴근 버튼)

관리자 처리(깃)
  • 사원에 맞는 사진 / 부서 노출

  • 출근시간을 누르게 되면, 다시 롤백 안됨

  • 퇴근시간을 누르게 되면, 다시 로그인 페이지로 이동

  • 다시 로그인 하고 퇴근시간을 누르게 되면 다시 update 되어 최근시간으로 진행

  • 대시보드는 on/off로 원하는 기능 노출

✨일정관리

관리자 처리(깃)
  • 일정 등록 시 “부서장이라면” 부서일정 및 팀 일정 등록 가능(부서일정과 하위 팀 일정 모두 확인 가능 / 부서일정 등록은 부서장만 가능)
  • 중요일정은 빨간색으로 표시
  • 일반일정은 하늘색으로 표시
  • 드래그 앤 드랍 가능

✨시설예약

관리자 처리(깃)
  • 예약하고 싶은 일정 선택 시작시간/종료시간을 정하고 회의실 조회 + 조건에 맞는 회의실 조회
  • 회의실 조회 시 시간이 겹치는 회의실 제외
  • 나의예약 과 팀 예약 조회 가능
  • 관리자는 회의실 생성 가능
  • 사용중인 회의실/ 미사용 회의실 조회 가능
  • 공지사항 / 예약리스트 / 회의실 민원 조회 가능

✨게시판

사내공지 게시판
관리자 처리(깃)

  • 일반 사용자는 사내공지 글을 쓰지 못함
  • 관리자일 경우에는 사내공지 작성 가능
  • 썸머노트 에디터 사용
  • 이미지 및 파일 다운로드 가능

익명게시판
관리자 처리(깃)
  • 사용자를 디비에 저장 하지 않기 때문에 “완전한 익명성”이 완전히 보장
  • 관리자와 일반 사용자로 사용 가능
  • 관리자는 삭제 권한을 갖고 있음
  • 일반 사용자일 경우 삭제가 불가능하고, 관리자일 경우에만 삭제가 가능
  • 댓글 등록 가능

✨전자결재

관리자 처리(깃)
관리자 처리(깃)
  • 기안 가능
  • 트리뷰 라이브러리를 사용한 양식 폼 제공
  • 결재라인 설정 가능
  • 개인결재라인 설정가능
  • 결재요청 및 반려 가능
  • 근태관리 및 캘린더에 연차 반영 가능

✨근태관리

관리자 처리(깃)
  • 모든 사원에 대한 출근 및 퇴근을 관리
  • 부서 근태관리 조회 + 이 달의 통계 조회 가능 + 근태사유 작성 가능

✨업무관리

관리자 처리(깃)
  • 프로젝트는 관리자만 생성 가능
  • 프로젝트는 이슈의 상태에 따라 (이슈 진행 + 이슈완료)로 상태값을 설정 할 수 있음
  • 부장 권한이 있는 사람만 할 수 있음
  • 프로젝트는 업무가 하나라도 엮여 있으면, 삭제불가
  • OPEN / CLOSED 클릭 시 종료된 프로젝트 / 진행중인 프로젝트 확인 가능
  • 마일스톤 기능 구현 + 이슈가 하나라도 엮여 있다면, 삭제가 불가능
  • 마일스톤도 open / closed 제공
  • 업무목록 “로그인 한 사원이 작성자, 수신자 또는 참조자인 업무의 리스트만 노출"
  • 받은 업무 리스트는 “로그인한 사원이 “수신자”인 경우에만 노출"
  • 보낸 업무 리스트는 “로그인한 사원이 “작성자”인 경우에만 노출"
  • 업무 이슈 등록 가능
  • 업무 이슈 공개여부설정에 따라 (비활성화 / 활성화) 두 가지로 제공
  • 이슈종료로 상태값을 변경 시키면, 디테일 페이지에 이슈종료 댓글 제공

✨주소록

관리자 처리(깃)
관리자 처리(깃)
  • 중요주소록 노란별를 클릭하면 중요주소록 저장
  • 개인주소록 중요주소록도 같이 포함되어서 노출
  • 메세지 기능이 존재하며, 내부 주소록만 메세지 전송이 가능
  • 공유주소록 공유 받은 주소록
  • 공유주소록 그룹 생성 가능

회고

⛑오지환

프로젝트 팀장으로 일하며, 특히 디비설계를 진행하면서 여러 가지 경험을 쌓았습니다. 업무에 대한 이해는 프로젝트의 핵심이라고 느꼈습니다. 처음에는 업무에 대한 전반적인 흐름을 파악하기 어려워 막막한 감정을 느꼈습니다. 그러나 상관모델링을 통해 업무의 복잡성을 해소할 수 있었고, 그 결과로 프로젝트 진행이 원활해졌습니다.

"막막함"은 모든 개발자가 처음에는 경험하는 감정이라고 생각합니다. 하지만 이러한 어려움을 극복하면서 자신의 역량을 향상시킬 수 있다는 것을 깨달았습니다. 프로젝트를 진행하면서 막막함을 자신감으로 변화시키는 과정은 매우 의미있었습니다.

프로젝트를 완료하면서 문서작업과 협동심에 대한 중요성을 다시 한번 깨달았습니다. 프로젝트의 성공은 팀원들 간의 원활한 소통과 협력에 크게 의존한다는 것을 깨달았습니다. 문서 작업은 프로젝트의 전반적인 흐름을 정리하고 공유함으로써 팀원들 간에 일관성 있는 이해를 도울 수 있었습니다. 또한, 팀원들과의 협동은 문제 해결과 업무 진행에 있어서 효과적인 방법이었습니다.

이런 경험들을 통해 프로젝트 리더로서의 역량을 키우고, 팀원들과의 원활한 협업을 통해 프로젝트의 성공을 이끌어낼 수 있었습니다. 이러한 경험들은 미래의 프로젝트에서 더 나은 리더십과 팀워크를 발휘할 수 있도록 도움이 되었습니다.


💎정태연

프로젝트를 시작하면서 프로젝트 산출물 작성과 팀원 간 소통에 많은 시간을 투자했습니다. 회의를 통해 깃 이력 관리도 제대로 해보기로 결정을 했고 깃을 보다 효율적으로 활용하기 위해 깃 가이드 문서를 작성하는 역할을 맡았습니다. 하지만 깃 공부 중 발생한 pull 및 merge 충돌 해결 과정에서 어려움을 겪었습니다. 팀원들은 충돌을 최소화하고 깃을 쉽게 사용할 수 있도록 노력했습니다.

프로젝트 초기에는 산출물 작성에 어려움을 겪었지만, 모든 팀원이 성실하게 참여하여 소통과 팀워크의 중요성을 느낄 수 있었습니다. 특히 업무 및 프로젝트, 이슈 관리 기능을 구현하는 과정에서는 사용자 관점에서의 효율성을 고려하여 깃허브의 기능을 참고하여 구현했습니다. 처음에는 DB 테이블을 조인하며 쿼리문 작성이 어려웠지만, 이를 통해 쿼리문에 대한 이해도를 향상시킬 수 있어 좋았습니다.

이번 프로젝트를 통해 팀 프로젝트의 중요성과 팀원 간의 원활한 소통이 얼마나 중요한지를 깨달았습니다. 처음 경험해본 팀 프로젝트 이지만 팀원들과 트러블 없이 진행하게되어 좋았습니다. 이번 프로젝트의 경험을 바탕으로 개인적인 실력 향상과 함께 팀원들과의 협업을 더욱 중요하게 생각하게 되었습니다.


🧶이휘재

기존에 프로젝트 경험이 없었던 나는 문서 작업의 필요성을 느끼지 못했습니다 보여주기 식이 아닌가 싶기도 했습니다 하지만 요구사항 정의서, 화면 정의서 등 여러 문서 작업을 진행하면서 설계 단계에서 미처 생각하지 못했던 부족한 부분을 보완할 수 있던 경험을 했고 결코 의미 없는 작업이 아니라는걸 알게 됐습니다 특히 테이블 정의서를 진행하면서 각 컬럼들의 존재 이유도 이해가 갔던 경험을 했고, 프로젝트에는 개발만이 중요한게 아니라 팀원과의 소통, 프로젝트 산출물도 매우 중요하다 느꼈습니다 문서를 작성해본 경험이 없었지만 요구사항을 충족하기 위해 노력 했습니다

코딩을 하면서 SQL 쿼리문의 중요성을 실감했고 특히 일정관리 부분에서 부서장 및 다른 일반 사원 권한에 따른 조회 결과가 달라야 할때 DB와의 상호작용이 매우 중요하다고 다시 한번 느꼈습니다 또, 프로젝트를 마무리 지으면서 팀원간의 협업 또한 프로젝트의 결과물 차이로도 이어질 수 있다고 생각했습니다 그리고 나의 부족한 부분에 대해 알수있던 계기였고, 배움에는 끝이 없다는 말 처럼 개발자로서 항상 배운다는 마인드를 장착 해야겠다 다짐 할 수 있던 경험 이었습니다


✨강우형

WorkConGW 프로젝트를 시작한 지 얼마 안 돼, 우리 팀은 초기부터 다양한 의견을 수렴하고 팀원들 간에 소통하여 프로젝트 초기 산출물을 만들었습니다. 요구사항 정의서, 화면 정의서, ERD 등 여러 산출물을 만들면서 기획 과정에서 많은 고민과 노력이 필요했습니다. 특히, 깃 사용 가이드를 작성하여 팀원들이 깃을 통일성 있게 사용할 수 있도록 돕는 데에도 많은 노력을 기울였습니다.

제가 맡은 주소록, 근태 관리, 홈 대시보드 및 전반적인 CSS 작업은 중요한 역할을 담당했습니다. 그러나 기능 구현 중에 CHAR 타입의 컬럼을 사용하는 문제가 발생했습니다. 몇몇 컬럼을 CHAR로 설정하여 데이터 크기를 제한하려 했으나, 이로 인해 값이 다 채워지지 않으면 빈 값이 들어가는 문제가 발생했습니다. 이를 해결하기 위해 VARCHAR로 변경하여 기능 구현을 진행했습니다.

프로젝트를 진행하면서 모든 팀원이 각자의 역할을 수행하고 기능을 완료했습니다. 각자가 작성한 테스트 케이스 및 테스트 시나리오를 통해 기능을 테스트하고 오류를 확인하여 다시 반영하는 과정을 거쳤습니다. 이를 통해 소통과 협업의 중요성을 몸소 깨달았습니다.

앞으로의 프로젝트에서는 개인적인 역량뿐만 아니라 팀원 간의 소통과 협업이 더 중요하다는 것을 깨달았습니다. 이러한 프로젝트를 토대로, 앞으로의 프로젝트에서는 소통을 최우선으로 생각하고 팀원들과 함께 재미있게 일하고 싶습니다.

workcongw's People

Contributors

ohsaam avatar jungtaeyeon avatar ihwijae 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.