2025-2 시스템 프로그래밍 팀 프로젝트 [4조]
-ncurses 라이브러리를 사용하여 직관적인 TUI를 제공하고, 암호화를 사용하여 파일의 모든 버전을 안전하게 관리하는 공유 파일 시스템입니다.
Makefile 사용
make실행(개별 터미널에서 실행)
./bin/evfs_server
./bin/evfs_clientlinux-team-project/
├─ bin/
│ ├─ evfs_client # tui 실행파일
│ └─ evfs_server # server 실행파일
│
├─ client/
│ ├─ client.c
│ ├─ net_client.c/.h # 클라이언트 통신
│ ├─ ui_handler.c/.h # tui 단축키 핸들러
│ └─ ui.c/.h # tui 레이아웃 렌더링
│
├─ common/
│ ├─ crypto.c/.h # 암호화
│ └─ protocol.h # 프로토콜 정의
│
├─ server/
│ ├─ projects/ # 프로젝트 저장소
│ ├─ auth.c/.h # 로그인 및 회원가입
│ ├─ project.c/.h # 프로젝트 관리 로직
│ ├─ server.c # 서버 구동 및 메인 루프
│ ├─ server_handler.c/.h # 클라이언트 요청 처리 핸들러
│ └─ version.c/.h # 프로젝트 버전 관리
│
├─ users.db # 유저 데이터베이스
├─ Makefile # 빌드 스크립트
└─ README.md server/
├─ projects/
│ ├─ project1/
│ │ ├─ file1/
│ │ │ ├─ .meta # project1/file1의 meta
│ │ │ ├─ v1_20251204... # project1/file1의 v1
│ │ │ └─ v2_20251204... # project1/file1의 v2
│ │ ├─ file2/
│ │ ├─.meta # project1의 meta
│ │ └─ readme.txt
│ │
│ └─ project2/- 로그인/회원가입: SHA-256 암호화 기반 팝업 형태로 구현
- 동적 파일 탐색기: 위아래 방향키로 목록 순회, Spacebar로 폴더 열기/닫기, Enter로 파일 선택 가능
- 프로젝트 생성: Ctrl+P로 새로운 프로젝트 생성 가능
- 파일 생성: Ctrl+F로 새로운 파일 생성 가능
- 파일 편집: Enter키로 선택한 파일 내용 불러온 뒤 편집기에서 편집 가능(방향키로 커서 이동, 백스페이스 사용)
- 파일 저장: Ctrl+S로 파일 저장(새로운 버전 생성)
- 멤버 초대: Ctrl+A로 프로젝트에 접근 가능한 새로운 멤버 추가 가능
- 파일 삭제: Ctrl+R로 파일 삭제 가능(프로젝트의 오너만 삭제 권한 보유)
- 파일 암호화: AES-256 암호화 기반 파일 저장/불러오기 시마다 서버 내 파일 암호화/복호화 수행
❗ commit author에 github 메일이 등록되어 있지 않은 채로 프로젝트를 진행하여 Contributor 그래프에는 commit 수가 제대로 반영되지 않고 있습니다. 세부 commit 기록을 확인해주시면 감사하겠습니다.
김민서: 서버 로직 구현
진유민: 통신/암호화 모듈 구현
한나영: TUI 구현