대학생들이 팀 프로젝트를 진행하며 겪는 팀원 매칭의 어려움과 팀 내 기여도·협업 태도 등 협업 과정에서의 갈등을 해결하기 위해 기획하였습니다.
단순한 팀원 모집을 넘어, 신뢰할 수 있는 동료를 찾고 성공적인 프로젝트 경험을 쌓을 수 있도록 돕는 것을 목표로 합니다.
Teample Mate는 대학생을 위한 팀 프로젝트 매칭 및 관리 플랫폼입니다.
사용자는 자신의 기술 스택과 프로필을 등록하여 프로젝트를 개설하거나 원하는 팀에 지원할 수 있습니다.
프로젝트 완료 후 진행되는 상호 평가(Peer Review) 시스템을 통해 팀원들의 협업 태도와 기여도를 데이터화합니다.
이를 통해 리더는 지원자의 과거 평가를 참고하여 보다 신뢰할 수 있는 팀원을 선별할 수 있으며, 건강한 팀 프로젝트 문화를 조성하는 데 기여합니다.
- 아이디와 비밀번호를 이용한 간편한 회원가입 및 로그인 기능을 제공합니다.
- 자신의 기술 스택, 자기소개 등 프로필 정보를 등록하고 수정할 수 있습니다.
- 모집 중인 프로젝트를 카드 형태로 직관적으로 확인할 수 있습니다.
- 키워드 검색, 기술 스택 별 필터링, 상태별(모집중/진행중/완료) 필터링 및 마감일/모집인원 순 정렬 기능을 제공합니다.
- 각 프로젝트 카드를 클릭하여 상세 페이지로 이동할 수 있습니다.
- 새로운 프로젝트를 개설하며 필요한 기술 스택, 모집 인원, 마감일 등 상세 조건을 설정할 수 있습니다.
-
프로젝트의 제목, 설명, 요구 기술 스택, 현재 팀원 등 상세 정보를 한눈에 확인할 수 있습니다.
-
프로젝트 리더: 프로젝트 상태(지원마감/진행중/완료)를 변경하고, 지원자 관리 페이지로 이동할 수 있습니다.

- 생성했거나 참여 중인 프로젝트를 한곳에서 관리할 수 있습니다.
- 각 프로젝트 카드를 클릭하여 상세 페이지로 이동할 수 있습니다.
- 프로젝트 리더는 지원자의 프로필, 기술 스택, 과거 동료 평가 등을 검토하여 팀원 합류를 승인하거나 거절할 수 있습니다.
- 지원한 프로젝트의 목록과 상태(대기중/승인됨/거절됨)를 실시간으로 확인할 수 있습니다.
Project/
├── backend/ # FastAPI 백엔드 서버
│ ├── api/
│ │ ├── deps.py # 의존성 주입 (DB 세션 등)
│ │ └── v1/endpoints/ # API 라우터
│ │ ├── auth.py # 로그인/회원가입
│ │ ├── projects.py # 프로젝트 생성/조회/수정/삭제/리뷰
│ │ ├── applications.py # 프로젝트 지원/관리
│ │ └── profile.py # 사용자 프로필 관리
│ ├── crud/ # 데이터베이스 쿼리 로직 (ORM/Raw SQL)
│ │ ├── crud_auth.py
│ │ ├── crud_projects.py
│ │ ├── crud_applications.py
│ │ └── crud_profile.py
│ ├── db/ # 데이터베이스 설정
│ │ ├── init_db.py # DB 초기화 스크립트
│ │ ├── session.py # DB 연결 세션
│ │ ├── utils.py
│ │ └── sql/ # SQL 스크립트
│ │ ├── CreateRoles.sql # Role 생성 스크립트
│ │ ├── CreateTable.sql # 테이블/뷰/인덱스 생성 스크립트
│ │ ├── TestData.sql # 테스트용 더미 데이터
│ │ └── App_roles_and_privileges.sql # 권한 설정 스크립트
│ ├── schemas/ # Pydantic 데이터 스키마 (Request/Response)
│ │ └── schemas.py
│ ├── main.py # 앱 진입점 (CORS 설정, 라우터 등록)
│ └── requirements.txt # Python 패키지 목록
│
├── frontend/ # Next.js 프론트엔드 클라이언트
│ ├── app/ # App Router (페이지 라우팅)
│ │ ├── layout.tsx
│ │ ├── page.tsx # 메인 페이지
│ │ ├── myapplications/ # 내 지원 현황 페이지
│ │ │ └── page.tsx
│ │ ├── myprojects/ # 내 프로젝트 관리 페이지
│ │ │ └── page.tsx
│ │ ├── profile/ # 프로필 관리 페이지
│ │ │ └── page.tsx
│ │ └── projects/ # 프로젝트 관련 페이지
│ │ ├── page.tsx # 프로젝트 목록
│ │ ├── create/ # 프로젝트 생성
│ │ │ └── page.tsx
│ │ └── [id]/ # 프로젝트 상세
│ │ └── page.tsx
│ ├── components/ # UI 컴포넌트
│ │ ├── auth/ # 인증 관련
│ │ │ ├── AuthModal.tsx # 로그인/회원가입 모달
│ │ │ └── AuthProvider.tsx
│ │ ├── layout/ # 레이아웃 관련
│ │ │ ├── Navigation.tsx
│ │ │ └── Footer.tsx
│ │ ├── projects/ # 프로젝트 관련
│ │ │ ├── ProjectList.tsx
│ │ │ ├── ProjectCard.tsx
│ │ │ ├── ProjectDetail.tsx
│ │ │ ├── CreateProject.tsx
│ │ │ ├── MyProjects.tsx
│ │ │ ├── ApplicantManagement.tsx
│ │ │ └── PeerReview.tsx
│ │ ├── applications/ # 지원 관련
│ │ │ └── MyApplications.tsx
│ │ ├── profile/ # 프로필 관련
│ │ │ └── ProfileManagement.tsx
│ │ └── ui/ # UI Primitives (shadcn/ui)
│ ├── constants/ # 상수 (스킬 목록 등)
│ ├── styles/
│ └── package.json # Node.js 패키지 목록
│
└── README.md # 프로젝트 설명서
- Python : 3.10 이상
- Node.js : 18.0 이상
- PostgreSQL : 14.0 이상
-
디렉토리 이동
cd backend -
가상환경 생성 및 활성화 (선택 사항)
python -m venv venv # Windows venv\Scripts\activate # Mac/Linux source venv/bin/activate
-
의존성 설치
pip install -r requirements.txt
-
데이터베이스 설정
backend/.env파일을 생성해 다음 정보를 입력합니다.ADMIN_USER와ADMIN_PASSWORD는 초기 데이터베이스 및 Role 생성을 위해 필요한 로컬 PostgreSQL 슈퍼유저 계정 정보입니다.# 애플리케이션이 사용할 DB 정보 POSTGRES_USER=teample_dev POSTGRES_PASSWORD=teample_password POSTGRES_DB=teamplemate_db POSTGRES_HOST=localhost POSTGRES_PORT=5432 # 초기 세팅을 위한 슈퍼유저 정보 ADMIN_USER=your_superuser_name ADMIN_PASSWORD=your_superuser_password
- 서버를 실행하면 자동으로 데이터베이스, Role, 테이블 및 테스트 데이터가 생성됩니다.
-
서버 실행
uvicorn main:app --reload
- 서버는
http://localhost:8000에서 실행됩니다. - API 문서는
http://localhost:8000/docs에서 확인할 수 있습니다.
- 서버는
-
디렉토리 이동
cd frontend -
의존성 설치
npm install
-
개발 서버 실행
npm run dev
- 웹 애플리케이션은
http://localhost:3000에서 실행됩니다.
- 웹 애플리케이션은
주요 테이블 구조는 다음과 같습니다.
| 테이블 | 정보 |
|---|---|
| Students | 사용자(학생) 정보 |
| Skills | 보유 가능한 기술 스택 목록 |
| Student_Skills | 학생과 스킬의 N:M 관계 |
| Projects | 프로젝트 정보 |
| Project_Required_Skills | 프로젝트 요구 스킬 |
| Applications | 프로젝트 지원 현황 |
| Peer_Reviews | 팀원 상호 평가 |
자세한 스키마는 backend/db/sql/CreateTable.sql 참조
자세한 정보는 docs/README_db 참조







