Skip to content

yunjaeeun/ERPC_refactor

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

553 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


🖥 ERPC 🖥


📚 목차


👨‍👨‍👦‍👦팀원

윤재은 조수빈 송동준 양지혜

✏ 프로젝트 소개 및 기획의도

1. 개요

최적의 영업을 위한 영업관리 시스템

2. 주제

컴퓨터와 관련부품들을 영업하는 회사의 ERP 시스템

3. 주제 선정 이유

  • 개발자로서 가장 많이 접하는 주제

  • 관련 동향과 전망

    image image
  • 팬데믹 동안 원격근무와 온라인 교육으로 인해 성장세를 보였던 시장의 정체

    ➡️ AI와 게임 등 기술 발전에 따른 고성능 컴퓨터의 수요 증가로 다시 성장할 것으로 기대

4. 기획의도

  • 기존 영업 ERP들의 필수 기능 + 단점 보완 ➡️ 문서화 시간 최소화 및 직관적인 화면 설계

  • 관련 코드를 통해 연관된 데이터 불러오기 ➡️ 중복된 데이터 입력 생략으로 문서화 시간 감소

  • 자동 엑셀 변환 및 다운로드 ➡️ 견적서, 계약서, 수주 엑셀 형식으로 자동 변환 및 다운로드 후 첨부 가능

  • 직관적인 화면 설계 ➡️ 처음 서비스를 이용하는 사용자도 쉽게 서비스 이용 가능


🛠기술스택

Backend

Spring Boot Spring JPA AWS S3 Java 17
Spring Boot Spring JPA AWS S3 Java 17

Frontend

Vue3 JavaScript HTML CSS
Vue.js JavaScript HTML5 CSS3

Database

MariaDB AWS RDS
MariaDB AWS RDS

CI/CD

GitHub Actions Route53 Elastic Beanstalk Prometheus Grafana
GitHub Actions Route53 Elastic Beanstalk Prometheus Grafana

Etc

GitHub Discord Slack
GitHub Discord Slack

🗂문서

📋설계문서

1. WBS

WBS image

2. 요구사항 명세서

요구사항 명세서 image

3. DDD

image image image image image image image image image image

4. ERD

1. 논리 모델링

image

2. 물리 모델링

image

5. 화면 설계서

5-1. 로그인 + 내 정보

와이어프레임 들

와이어프레임 들 (2)

이미지 1

이미지 2


5-2.공지사항 관리

와이어프레임 들 (9)

와이어프레임 들 (10)

와이어프레임 들 (11)

와이어프레임 들 (12)


5-3. 영업기회 관리

와이어프레임 들 (5)

와이어프레임 들 (6)

와이어프레임 들 (7)

와이어프레임 들 (8)


5-4. 품목 관리

와이어프레임 들 (3)

와이어프레임 들 (4)


5-5. 거래처 관리

그림2

그림3

그림4

그림5


5-6. 견적서 관리

그림6

그림7

그림8

그림9


5-7. 계약서 관리

그림10

그림11

그림12

그림13


5-8. 수주 관리

그림14

그림15

그림16

그림17


5-9. 전표 관리

그림18

그림19


5-10. 실적 관리

그림20


5-11. 결재 관리

그림21

그림22

그림23

그림24


5-12. 관리자 페이지

사진 3

사진 4

사진 5

권한

권한 1

권한 2

6. API 명세서

API 명세서

1-1. 세금계산서, 영업기회
image
1-2. 영업기회 참고사항, 견적서 참고사항, 견적서
image
1-3. 수주 참고사항, 수주, 공지사항 댓글, 공지사항
image
1-4. 사원, 계약서, 결재
image
1-5. 결재, 거래처 참고사항, 거래처
image
1-6. 권한, 출하, 세금계산서 발행, 삭제요청
image
1-7. 삭제요청, 창고, 실적
image
1-8. 실적, 품목, POI
image

7. 업무 흐름도

1-1. 영업관리 업무 흐름도
image
1-2. ERP 관리자 업무 흐름도
image
1-3. 상급자(팀장) 업무 흐름도
image

📊테스트

1. 백엔드 단위테스트 결과서

백엔드 테스트 명세서

2. UI/UX 단위 테스트 결과서 및 통합테스트


2-1. 로그인

2-1-1. 비밀번호 변경 후 로그인 및 로그아웃

영상1

2-1-2. 내 정보 확인 비밀번호 변경 권한신청

2024-06-12 15;24;47


2-2. 공지사항

2-2-1. 공지사항 등록

2024-06-12 15;25;58

2-2-2. 댓글 작성 및 삭제

2024-06-12 15;27;06

2-2-3. 공지사항 수정

2024-06-12 15;28;29


2-3. 품목관리

2-3-1. 품목 목록

2024-06-12 15;53;24

2-3-2. 창고 목록

2024-06-12 16;12;43


2-4. 영업기회

2-4-1. 영업기회 목록

2024-06-12 16;21;58

2-4-2. 영업기회 상태변경 및 참고사항 작성 및 삭제

2024-06-12 16;39;10

2-4-3. 영업기회 등록( 전화번호 형식 이메일 형식 맞아야함)

2024-06-12 16;43;48

2-4-4. 영업기회 수정

2024-06-12 16;45;35


2-5. 거래처 관리

2-5-1. 거래처 등록 및 목록

거래처-등록

2-5-2. 거래처 상세 및 수정/삭제 요청

거래처-조회-및-수정

2-5-3. 거래처별 수주 내역 조회

거래처별 수주 내역 조회


2-6. 견적서 관리

2-6-1. 견적서 등록 및 목록

견적서-등록

2-6-2. 견적서 상세 및 수정/엑셀다운/결재요청/삭제요청

견적서-조회-및-수정


2-7. 계약서 관리

2-7-1. 계약서 등록 및 목록

계약서-등록

2-7-2. 계약서 상세 및 수정/엑셀다운/결재요청/삭제요청

계약서-조회-및-수정


2-8. 수주/전표 관리

2-8-1. 수주 등록 및 목록

수주-등록

2-8-2. 수주 상세 및 수정/엑셀다운/결재요청/삭제요청

수주-조회-및-수정

2-8-3. 세금계산서 발행 요청 및 발행내역/출하상태 확인

세금계산서-발행-및-수주-출하-확인


2-9. 실적 관리

2-9-1. 연간 실적 조회
2-9-2. 팀별 실적 조회
2-9-3. 사원별 실적 조회

2-10. 결재 관리

2-10-1. 견적서 결재
2-10-2. 계약서 결재
2-10-3. 수주 결재

2-11. 관리자 페이지

2-11-1. 사원조회 및 수정

사원리스트밎저장

2-11-2. 사원등록

사원등록

2-11-3. 권한신청 및 조회

권한신청 밎 조회

2-11-4. 권한조회 및 등록

권한조회 및 등록

2-11-5. 삭제요청 및 관리

영업기회 삭제 요청 관리

영업기회 삭제 요청 밎 삭제

계약서 삭제 요청 관리

계약서 삭제 요청 밎 관리

거래처 삭제 요청 관리

거래처 삭제요청 밎 관리

견적서 삭제 요청 관리

견적서 삭제 요청 및 관리

수주 삭제 요청 관리

수주 삭제요청 및 관리

📈시스템 아키텍처 및 모니터링

1. 시스템 아키텍처

image

2. Prometheus

image

3. Grafana

image


🥳프로젝트 회고

이름 내용
송동준 이번 프로젝트에서는 실제 실무와 밀접한 연관이 있는 영업관리 시스템(ERP)을 제작해 보았습니다. 아무래도 ERP 자체가 저희에게 생소한 주제이다 보니 조원들이 서 여러 방면으로 공부해 보고 실제 실무진 멘토의 경험을 바탕으로 프로젝트를 진행하였습니다.

이를 통해 기본적인 거래처 견적서 계약서 수주 전표를 실적을 관리하는 기능을 구현하였고 다른 시스템과의 차별성을 두기 위해 여러 정보들을 불러와서 일일이 작성할 필요 없이 자동적으로 작성할 수 있게 편의성을 추가했습니다.

생소한 주제라 이해하는데 시간도 오래 걸리고 현업에서 쓰는 시스템인 만큼 많은 기능을 가지고 있어 구현하는 데 어려움을 겪었으나 다른 팀원들 보다 적은 인원수에도 일정을 잘 관리하여 최종 프로젝트를 무사히 완성할 수 있었습니다.

권한 부여 정보 불러오기 여러 조건들에 의한 상태 값 변화들을 신경 쓰면서 문제 해결 능력을 더 기를 수 있었고 오류 코드를 차근차근 점검해나가면서 차분함을 기를 수 있었습니다 또한 Elastic Beanstalk을 통해 자동 배포 시스템을 이용하면서 실제 현업에서 어떻게 배포하는지를 배울 수 있었습니다
양지혜
윤재은 이번 프로젝트에서는 효율적인 영업을 위한 영업 관리 시스템이라는 생소한 주제를 가지고 2개월 동안 진행하며 많은 새로운 경험을 했습니다. 팀원들이 각각 기획서를 제작하는 과정부터 시작해, 영업 프로세스를 익히기 위해 많은 자료를 조사하고 여러 영업 관련 ERP를 참고하며 장단점을 추출하고 이를 기반으로 기획을 했습니다. 저는 이번 ERPC 프로젝트에서 DB 모델링, RDS 서버 구축, JPA를 활용한 CRUD, GitHub Actions와 Elastic Beanstalk을 활용한 CI/CD, Spring Security, SMTP 설정을 맡았습니다.

개발을 시작하기 전 가장 어려울 것이라고 예상했던 권한과, 수주를 구현하기 위해 먼저 스프링 시큐리티에서 권한을 설정하지 않고 DB 모델링에서 이를 고려해 중간 객체를 만들며 권한 문제를 해결하고 JPA를 활용해 수주의 여러 얽힌 기능들을 하나씩 구현하며 많은것을 얻어갈 수 있었습니다.

이전에 시도해보지 못했던 CI/CD, Spring Security, RDS 구축을 담당하며 많은 어려움도 있었지만, 하나씩 해결해가며 Elastic Beanstalk의 작동 원리, JWT 토큰 발급, 리눅스 환경에서 Nginx 설정 등을 경험 할 수 있는 계기가 되었습니다. Elastic Beanstalk을 통해 자동 배포 시스템을 설정하고 운영하여 배포 효율성을 크게 향상시켰으며, Spring Security를 활용해 JWT 토큰 기반 인증 시스템을 구현했습니다. 또한, 리눅스 환경에서 Nginx를 설정하여 서버 성능과 보안을 강화했습니다.

비록 이번 프로젝트에서 리프레시 토큰 구현과 실적 데이터를 그래프로 시각화하는 기능을 구현하지 못해 아쉬움을 느끼지만, 이는 추후 고도화 과정에서 새로운 목표로 설정해 개발을 진행 할 계획입니다.
조수빈 이번 프로젝트에서는 다양한 기능을 구현하며 많은 성취감을 느꼈습니다. 영업기회, 계약서, 매출 및 목표실적, 세금계산서 요청, 공지사항 관련 기능을 모두 담당하여 성공적으로 구현하였습니다. 특히, 엑셀 변환 및 다운로드 기능은 Apache POI를 이용했고, 파일 업로드는 AWS S3 버킷을 활용했습니다. 또한, 프로메테우스와 그라파나를 통해 모니터링 시스템을 구축하고, 깃허브 웹훅을 통해 디스코드 채널로 알림을 설정하여 팀원들의 진행 상황을 실시간으로 확인할 수 있었습니다.

세금계산서 관련 기능은 다른 기능들과 밀접하게 연관되어 있어 신경 써서 구현하였으며, 타 부서와의 협업을 고려해 테이블을 분리하여 구현하였습니다. JPA를 활용해 잔금 혹은 일시금을 납부할 경우 자동으로 해당 팀원 및 팀에 매출 실적을 반영하는 기능을 구현하면서 업무 프로세스를 최대한 반영하려고 노력했습니다.

다른 팀들보다 적은 인원으로 프로젝트를 진행하면서 담당한 업무 분량이 많았지만, 그만큼 더 큰 성취감을 느낄 수 있었고, 꼼꼼하게 일정 관리를 위해 노력했습니다. 특히 새로운 기술을 도입해 파일 업로드와 엑셀 변환 및 다운로드 기능을 구현하고, 여러 오류들을 스스로 해결하며 기술적인 성장을 이뤘습니다.

실제 실무진인 멘토의 조언을 받아 실무 프로세스를 최대한 반영하려 노력한 것도 큰 도움이 되었습니다. 이번 프로젝트를 통해 백엔드 개발에 사용된 Spring JPA와 Spring Boot, AWS S3를 활용한 파일 업로드, Apache POI를 이용한 엑셀 변환 및 다운로드, 그리고 디스코드 웹훅을 통한 팀원들과의 원활한 소통 등 다양한 기술적 경험을 쌓을 수 있었습니다. 이 프로젝트는 개발자로서의 역량을 한층 더 성장시키는 소중한 기회가 되었습니다.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Java 48.8%
  • Vue 39.3%
  • CSS 10.5%
  • JavaScript 1.3%
  • Other 0.1%