Skip to content

SJ-Leeee/task-share

Repository files navigation

Task Share

팀의 하루 업무를 기록하고, 서로의 진행 상황을 한눈에 공유할 수 있는 팀 업무 기록 서비스입니다.

📝 개발 후기: 코드넛의 업무 공유 시스템 개발기

이 저장소는 사내에서 운영 중인 Task Share 서비스의 공개 스냅샷입니다. 주요 기능 단위로 갱신됩니다.


✨ 주요 기능

  • 오늘의 Task 작성 — 간단한 에디터로 하루 업무를 기록하고 태그로 분류
  • 팀 현황 보기 — 팀원 전체의 기록을 날짜별로 한 화면에서 조회
  • 내 기록 아카이브 — 월별로 내가 쓴 기록을 모아보고, 태그·키워드로 검색
  • 태그 기반 분류 — 관리자가 관리하는 공용 태그로 일관된 카테고리 유지
  • 검색 — 기간 / 태그 / 인원 / 키워드 조합 필터
  • 관리자 기능 — 인원/태그 관리, 기록 엑셀 내보내기
  • 반응형 UI — 데스크톱·모바일 모두 대응

🛠️ 기술 스택

  • FrameworkNext.js 16 (App Router) / React 19
  • Styling — Tailwind CSS v4 / shadcn-ui
  • DB / ORM — MySQL + Drizzle ORM
  • Authiron-session 기반 쿠키 세션
  • Language — TypeScript

🚀 로컬 실행 방법

사전 준비

  • Node.js 20+

  • MySQL 8.0+ — 로컬에 설치하거나 Docker로 띄우면 됩니다.

    # Docker로 빠르게 띄우는 예시
    docker run -d --name task-share-db \
      -p 3306:3306 \
      -e MYSQL_ROOT_PASSWORD=1234 \
      -e MYSQL_DATABASE=task_share \
      mysql:8

1. 저장소 클론 & 의존성 설치

git clone https://github.com/SJ-Leeee/task-share.git
cd task-share
npm install

2. 환경변수 설정

프로젝트 루트에 .env 파일을 만들고 아래 키들을 채워주세요.

# Database (MySQL)
DB_HOST=localhost
DB_PORT=3306
DB_USER=dbuser
DB_PASSWORD=dbpassword
DB_NAME=dbname

# Session (iron-session) - 32자 이상의 랜덤 문자열
SESSION_PASSWORD=abcdabcd-abcdabcd-abcdabcd-abcdabcd

3. 데이터베이스 마이그레이션

npm run db:push

4. 시드 데이터 삽입 (선택)

기능을 바로 확인해보려면 가상 팀(관리자 1명 + 매니저 2명 + 직원 8명)과 3개월치 더미 업무 데이터를 넣을 수 있습니다.

npm run seed:reset

⚠️ DB 전체가 초기화되므로 로컬 개발 DB에서만 사용하세요.

삽입되는 주요 테스트 계정:

이름 (아이디) 역할 비밀번호
admin 관리자 admin1234
jiyeon.oh (오지연) Maker 팀 매니저 pass1234
minjun.seo (서민준) Business 팀 매니저 pass1234
그 외 8명 일반 직원 pass1234

5. 개발 서버 실행

npm run dev

브라우저에서 http://localhost:3000 으로 접속 → 위 계정으로 로그인하면 됩니다.


⚠️ 참고 사항

  • 문서 공유(S3) 기능 비활성화src/lib/s3.ts, src/app/api/documents/* 등 문서 업로드/다운로드 코드가 포함되어 있지만, 현재 운영 및 이 저장소 기본 구성에서는 비활성화되어 있습니다. 관련 AWS 환경변수도 필요 없습니다. 사용하려면 S3(또는 호환 스토리지) 설정과 UI 복구(admin/documents, documents/page.tsx의 제출문서 탭 등)가 별도로 필요합니다.

📖 사용 안내

  • 자동 로그인 — 한 번 로그인하면 30일간 유지됩니다
  • 태그 추가/숨김 — 태그 일관성을 위해 관리자만 변경할 수 있습니다
  • 조회 가능 기간 — 팀 현황은 최대 +3개월까지 조회할 수 있습니다
  • 계정 생성 — 관리자가 /admin/users에서 계정을 생성하고 초기 비밀번호를 안내합니다

🤝 기여

버그 제보, 기능 제안, PR 모두 환영합니다. 이슈를 먼저 등록해주시면 논의 후 진행하기 수월합니다.


📄 라이선스

이 프로젝트는 MIT License 하에 배포됩니다. 자유롭게 사용·수정·재배포할 수 있습니다.

About

사내 일정공유 서비스

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages