diff --git a/README.md b/README.md index 7a4658aa..7e3af856 100644 --- a/README.md +++ b/README.md @@ -1,81 +1,350 @@ -# Turborepo starter +
+ +

Codeit Resources

+ +[![GitHub issues](https://img.shields.io/github/issues/codeit-internship-group-b/codeit-resources?color=red)]() +[![GitHub stars](https://img.shields.io/github/stars/codeit-internship-group-b/codeit-resources?color=yellow)]() +[![GitHub forks](https://img.shields.io/github/forks/codeit-internship-group-b/codeit-resources?color=orange)]() +[![GitHub watchers](https://img.shields.io/github/watchers/codeit-internship-group-b/codeit-resources?color=blue)]() -This is an official starter Turborepo. +

사내 리소스 예약/대여/반납 플랫폼

+

+ View Web Site + · + API Docs +

+ +![CodeitResources](https://github.com/user-attachments/assets/95a700e0-b710-4f99-85b2-9d11a4e0fdbc) -## Using this example +
-Run the following command: +
+
-```sh -npx create-turbo@latest -``` +# 💫 Table of contents -## What's inside? +- [👥 Team](#-team) +- [🛠️ Tech stack](#️-tech-stack) +- [📁 Project structure](#-project-structure) +- [✨ Features](#-features) +- [🚀 Installation](#-installation) -This Turborepo includes the following packages/apps: +
+
-### Apps and Packages +# 👥 Team -- `docs`: a [Next.js](https://nextjs.org/) app -- `web`: another [Next.js](https://nextjs.org/) app -- `@repo/ui`: a stub React component library shared by both `web` and `docs` applications -- `@repo/eslint-config`: `eslint` configurations (includes `eslint-config-next` and `eslint-config-prettier`) -- `@repo/typescript-config`: `tsconfig.json`s used throughout the monorepo + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ 소혜린 + + 김보경 + + 신승헌 + + 조현지 + + 배영준 +
+ FullStack, PM + + FullStack + + FullStack + + FrontEnd + + FrontEnd +
-Each package/app is 100% [TypeScript](https://www.typescriptlang.org/). +
+
-### Utilities +# 🛠️ Tech stack -This Turborepo has some additional tools already setup for you: +## 1. Frontend -- [TypeScript](https://www.typescriptlang.org/) for static type checking -- [ESLint](https://eslint.org/) for code linting -- [Prettier](https://prettier.io) for code formatting +- Language -### Build + -To build all apps and packages, run the following command: +- Library & Framework -``` -cd my-turborepo -pnpm build -``` + + + + + + -### Develop +- Deploy -To develop all apps and packages, run the following command: + + -``` -cd my-turborepo -pnpm dev -``` +## 2. Mobile + +- Language + + + +- Library & Framework + + + +## 3. Backend + +- Language + + + +- Library & Framework + + + +- Database + + + +- Deploy + + + +## 4. CI/CD + + -### Remote Caching +
+
-Turborepo can use a technique known as [Remote Caching](https://turbo.build/repo/docs/core-concepts/remote-caching) to share cache artifacts across machines, enabling you to share build caches with your team and CI/CD pipelines. +# 🚀 Installation -By default, Turborepo will cache locally. To enable Remote Caching you will need an account with Vercel. If you don't have an account you can [create one](https://vercel.com/signup), then enter the following commands: +### 패키지 설치 +```bash +pnpm install ``` -cd my-turborepo -npx turbo login + +### 개발 모드 + +```bash +pnpm run dev +``` + +### 프로덕션 모드 + +```bash +pnpm run build ``` -This will authenticate the Turborepo CLI with your [Vercel account](https://vercel.com/docs/concepts/personal-accounts/overview). +
+
-Next, you can link your Turborepo to your Remote Cache by running the following command from the root of your Turborepo: +# 📁 Project Structure + +## MonoRepo + +웹과 모바일 앱이 동일한 백엔드 API를 사용하고, UI 컴포넌트를 공유하기 때문에 **모노레포**로 구성하였습니다. 또한 **TurboRepo**를 도입하여 빌드 속도를 개선하고 효율적인 개발 환경을 구축했습니다. + +전체적인 폴더구조는 아래와 같습니다. ``` -npx turbo link +codeit-resources/ # Project Root +├── apps/ +│ ├── api/ # 백엔드 서버 +│ │ └── src/ +│ │ ├── controllers/ # API 엔드포인트 핸들러 +│ │ ├── middleware/ # API 미들웨어 +│ │ ├── models/ # MongoDB 스키마 및 모델 정의 +│ │ ├── routes/ # API 라우트 +│ │ └── swagger/ # API 문서 +│ │ +│ └── mobile/ # 모바일 앱 +│ │ └── app/ +│ │ ├── (route)/ # 라우팅 디렉토리 +│ │ ├── assets/ # 정적 자산 폴더 +│ │ ├── components/ # 재사용 가능한 컴포넌트 +│ │ ├── constants/ # 앱 전역 상수 +│ │ ├── utils/ # 유틸리티 함수 +│ │ ├── hooks/ # 커스텀 훅 +│ │ └── store/ # 상태 관리 스토어 +│ │ +│ ├── storybook/ # StoryBook 설정 및 구성 파일 +│ │ +│ └── web/ # 웹 클라이언트 +│ ├── api/ # API 호출 관련 코드 +│ ├── app/ +│ │ ├── _components/ # 재사용 가능한 컴포넌트 +│ │ ├── _hooks/ # 커스텀 훅 +│ │ ├── (admin)/ # 관리자 페이지 +│ │ ├── (seats)/ # 좌석 예약 페이지 +| | ... # 이외의 프로젝트에 구성된 페이지들 +│ │ ├── layout.tsx # 레이아웃 컴포넌트 +│ │ └── page.tsx # 루트 컴포넌트 +│ ├── components/ # 공통 UI 컴포넌트 +│ └── lib/ # 라이브러리 함수 및 모듈 +│ +└── packages/ # 공유 패키지 디렉토리 + ├── constants/ # 프로젝트 전역 상수 + ├── eslint-config/ # ESLint 설정 + ├── prettier-config/ # Prettier 설정 + ├── tailwind-config/ # Tailwind CSS 설정 + └── ui/ # 공통 UI 컴포넌트 ``` -## Useful Links +## Architecture + +**1. Web / Mobile** + +- AWS S3에 빌드된 정적 파일을 저장하고, 이를 AWS CloudFront를 통해 배포하였습니다. +- React Native Webview를 사용하여 Next.js로 만든 웹을 모바일 앱 내에 표시하였습니다. + +**2. Backend** + +- AWS EC2 인스턴스에서 Express.js 서버를 실행한 뒤, MongoDB와 연동하였습니다. +- AWS S3를 이용하여 이미지를 저장하였습니다. + +
+ +
+ +
+
+ +# ✨ Features + +## 1. Member 기능 + +### 대시보드 + +오늘 예약된 회의나 좌석을 확인 할 수 있습니다. + +![스크린샷 2025-01-14 134555](https://github.com/user-attachments/assets/45a79e2f-384f-4716-87bb-b3293858b478) + +
+ +### 회의실 예약 + +특정 날짜와 시간을 선택하여 회의실을 예약 할 수 있습니다. + +![스크린샷 2025-01-14 141122](https://github.com/user-attachments/assets/703e396c-8d28-4a81-9e70-8b2d58578d60) + +회의는 제목, 회의실, 시간, 참여자를 선택할 수 있으며 예약한 회의는 수정, 취소가 가능합니다. + +![스크린샷 2025-01-14 134523](https://github.com/user-attachments/assets/d8fbc607-ba5d-4e75-a5f6-a7b2e46bf71a) + +
+ +### 좌석 예약 + +원하는 좌석을 예약 할 수 있습니다. + +![스크린샷 2025-01-14 142225](https://github.com/user-attachments/assets/05736685-b3e0-4e73-bb7c-b277d049c7dd) + +좌석은 이동과 반납이 가능합니다. + +![스크린샷 2025-01-14 142257](https://github.com/user-attachments/assets/f292417e-b534-46f0-b486-89c1165c1213) + +
+ +### 내 프로필 + +개인 프로필 정보를 확인 할 수 있으며 비밀번호 변경, 로그아웃을 할 수 있습니다. + +![스크린샷 2025-01-14 134649](https://github.com/user-attachments/assets/0cff8370-4c18-4525-9da6-9d2be79959f0) + +
+ +## 2. Admin 기능 + +### 멤버 관리 + +전체 멤버 목록을 확인할 수 있습니다. + +![스크린샷 2025-01-14 133616](https://github.com/user-attachments/assets/aae08e78-6f12-455c-aa02-22a42c022695) + +멤버 검색 기능을 통해 특정 멤버를 찾을 수 있습니다. + +![스크린샷 2025-01-14 133601](https://github.com/user-attachments/assets/648e673c-af33-4b1f-b4c2-ab9583bf0aa2) + +멤버의 정보를 추가, 수정, 삭제 할 수 있습니다. + +![스크린샷 2025-01-14 134750](https://github.com/user-attachments/assets/1daddc78-e610-4c99-bbe3-ff38d930d978) + +
+ +### 팀 관리 + +전체 팀 목록을 확인할 수 있으며 드래그 앤 드롭 기능으로 팀 위치를 변경 할 수 있습니다. + +![스크린샷 2025-01-14 133640](https://github.com/user-attachments/assets/23a08bbe-fee2-4bef-94aa-b36327fd54e9) + +팀은 추가, 수정, 삭제가 가능합니다. + +![스크린샷 2025-01-14 134838](https://github.com/user-attachments/assets/7826470e-af41-4e7e-a1cb-57cea986fe09) + +
+ +### 회의실 설정 + +전체 회의실 목록을 확인 할 수 있습니다. + +![스크린샷 2025-01-14 133716](https://github.com/user-attachments/assets/20ce9c61-874d-4d51-877a-134377085dfd) + +회의실은 추가, 수정, 삭제가 가능합니다. + +![스크린샷 2025-01-14 135011](https://github.com/user-attachments/assets/8bb8967a-fa87-4e25-907d-922a9d2f422c) + +
+ +### 좌석 설정 + +특정 좌석의 상태(예약 가능, 고정 좌석, 사용 불가)를 변경 할 수 있습니다. -Learn more about the power of Turborepo: +![스크린샷 2025-01-14 142346](https://github.com/user-attachments/assets/19b3ff3c-e555-4e3b-8afd-86b89ef4f427) -- [Tasks](https://turbo.build/repo/docs/core-concepts/monorepos/running-tasks) -- [Caching](https://turbo.build/repo/docs/core-concepts/caching) -- [Remote Caching](https://turbo.build/repo/docs/core-concepts/remote-caching) -- [Filtering](https://turbo.build/repo/docs/core-concepts/monorepos/filtering) -- [Configuration Options](https://turbo.build/repo/docs/reference/configuration) -- [CLI Usage](https://turbo.build/repo/docs/reference/command-line-reference) +
+