Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Server] 0.4.7 배포 #210

Merged
merged 33 commits into from
Dec 7, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
86520a7
[Server] 개발환경 세팅 (#4)
pminsung12 Nov 9, 2023
8fe9ba6
Server/feature/#13 (#25)
pminsung12 Nov 14, 2023
2d84f75
테스트용 유저 API 구현 (#30)
yangdongsuk Nov 15, 2023
2b6fb53
[Server] 유닛 테스트 환경 세팅 (#32)
yangdongsuk Nov 15, 2023
112d9ba
[Server] Users resource 이름 변경 (#34)
yangdongsuk Nov 15, 2023
375e785
feature: usersService 테스트 코드 작성 (#39)
yangdongsuk Nov 16, 2023
5b230ec
[Server] Folder entity 생성 및 crud 구현 (#42)
pminsung12 Nov 16, 2023
da9f6d3
feature: docker파일 수정 (#57)
yangdongsuk Nov 20, 2023
e4936cb
feat: private checklist entity 생성 및 crud 구현 (#61)
pminsung12 Nov 21, 2023
5cfdb02
feat: checklist 폴더 분리 & dto 빈문자열 검증 추가 (#66)
yangdongsuk Nov 22, 2023
de6b5f3
[Server] Winston으로 로그 관리 (#70)
pminsung12 Nov 23, 2023
f795888
feat: jwt access, refresh token 기반 인가 구현
yangdongsuk Nov 23, 2023
304ea79
[Server] shared-checklist 소켓 구현 (#78)
yangdongsuk Nov 23, 2023
ff9598d
[Server] apple oauth api 구현 (#86)
pminsung12 Nov 26, 2023
4616d27
[Server] access 토큰 재발급시 유저 정보 없는 버그 수정 (#83)
yangdongsuk Nov 26, 2023
7091fad
[Server] privateChecklist의 내용 저장 api 구현 (#88)
yangdongsuk Nov 27, 2023
7f88671
[Server] apple oauth 로그인 로직 수정 (#118)
pminsung12 Nov 27, 2023
fd3703c
[Server] Clova Studio api 구현 (#126)
pminsung12 Nov 29, 2023
ac8ab73
feat: AccessTokenGuard 구현 및 적용 (#129)
yangdongsuk Nov 29, 2023
70043ff
Server/feature/#128 (#139)
pminsung12 Nov 29, 2023
2b1eaf8
feat: 공유 체크리스트 API 및 소켓 작업 구현 (#140)
yangdongsuk Nov 30, 2023
283e6fa
🔐feat: 개발용 임시로 액세스,리프레시 토큰들 만료기한 일주일로 설정 (#142)
pminsung12 Nov 30, 2023
5e5fd4e
feat: 공유 체크리스트 아이템 권한 문제 및 uuid 문제 해결 (#146)
yangdongsuk Nov 30, 2023
adc3269
feat: 소켓 다중 서버 지원 (#159)
yangdongsuk Dec 4, 2023
347cb90
feat: 소켓 editing 이벤트 추가 (#164)
yangdongsuk Dec 4, 2023
620c06d
fix: 레디스 연결 수정 (#168)
yangdongsuk Dec 4, 2023
9240dde
[Server] object 형태가 들어오면 redis에 저장 안되는 문제 수정 (#171)
pminsung12 Dec 4, 2023
7ae37bb
feat: 웹소켓 히스토리 버그 수정 및 콘솔 로그 추가 (#175)
yangdongsuk Dec 4, 2023
d047b41
[Server] 로거 기능 확대 (#176)
pminsung12 Dec 4, 2023
55ade94
🐛fix: redis module password 부분 주석처리 (#180)
pminsung12 Dec 4, 2023
0014655
[Server] 피드화면 api 구현 (#196)
pminsung12 Dec 6, 2023
5c2f20a
feat: 관리 페이지와 api 구현 (#197)
yangdongsuk Dec 7, 2023
462fe15
[Server] 클라이언트와 api 연동 작업 (login, socket history) (#209)
yangdongsuk Dec 7, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 16 additions & 4 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,19 @@
## 완료한 기능 혹은 수정 기능
## 🚀 완료한 기능 혹은 수정 기능

## 고민과 해결 과정

## 스크린샷
<br>

## 테스트 결과(커버리지/테스트 결과)
## 💡 고민과 해결 과정
### `배경`

### `고민`

### `해결과정`

<br>

## 📸 스크린샷

<br>

## ✅ 테스트 결과(커버리지/테스트 결과)
10 changes: 10 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# 디폴트 무시된 파일
/.idea/shelf/
/.idea/workspace.xml
# 에디터 기반 HTTP 클라이언트 요청
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

/.idea
4 changes: 4 additions & 0 deletions server/.dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
.gitignore
Dockerfile
node_modules
dist
25 changes: 25 additions & 0 deletions server/.eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
module.exports = {
parser: '@typescript-eslint/parser',
parserOptions: {
project: 'tsconfig.json',
tsconfigRootDir: __dirname,
sourceType: 'module',
},
plugins: ['@typescript-eslint/eslint-plugin'],
extends: [
'plugin:@typescript-eslint/recommended',
'plugin:prettier/recommended',
],
root: true,
env: {
node: true,
jest: true,
},
ignorePatterns: ['.eslintrc.js'],
rules: {
'@typescript-eslint/interface-name-prefix': 'off',
'@typescript-eslint/explicit-function-return-type': 'off',
'@typescript-eslint/explicit-module-boundary-types': 'off',
'@typescript-eslint/no-explicit-any': 'off',
},
};
37 changes: 37 additions & 0 deletions server/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# compiled output
/dist
/node_modules

# Logs
logs
*.log
npm-debug.log*
pnpm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*

# OS
.DS_Store

# Tests
/coverage
/.nyc_output

# IDEs and editors
/.idea
.project
.classpath
.c9/
*.launch
.settings/
*.sublime-workspace

# IDE - VSCode
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/extensions.json

.env
postgres-data
4 changes: 4 additions & 0 deletions server/.prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"singleQuote": true,
"trailingComma": "all"
}
14 changes: 14 additions & 0 deletions server/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
FROM node:18
RUN mkdir -p /app
WORKDIR /app
ADD . /app/

RUN rm yarn.lock || true
RUN rm package-lock.json || true
RUN yarn
RUN yarn build

ENV HOST 0.0.0.0
EXPOSE 3000

CMD [ "yarn", "start"]
73 changes: 73 additions & 0 deletions server/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
<p align="center">
<a href="http://nestjs.com/" target="blank"><img src="https://nestjs.com/img/logo-small.svg" width="200" alt="Nest Logo" /></a>
</p>

[circleci-image]: https://img.shields.io/circleci/build/github/nestjs/nest/master?token=abc123def456
[circleci-url]: https://circleci.com/gh/nestjs/nest

<p align="center">A progressive <a href="http://nodejs.org" target="_blank">Node.js</a> framework for building efficient and scalable server-side applications.</p>
<p align="center">
<a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/v/@nestjs/core.svg" alt="NPM Version" /></a>
<a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/l/@nestjs/core.svg" alt="Package License" /></a>
<a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/dm/@nestjs/common.svg" alt="NPM Downloads" /></a>
<a href="https://circleci.com/gh/nestjs/nest" target="_blank"><img src="https://img.shields.io/circleci/build/github/nestjs/nest/master" alt="CircleCI" /></a>
<a href="https://coveralls.io/github/nestjs/nest?branch=master" target="_blank"><img src="https://coveralls.io/repos/github/nestjs/nest/badge.svg?branch=master#9" alt="Coverage" /></a>
<a href="https://discord.gg/G7Qnnhy" target="_blank"><img src="https://img.shields.io/badge/discord-online-brightgreen.svg" alt="Discord"/></a>
<a href="https://opencollective.com/nest#backer" target="_blank"><img src="https://opencollective.com/nest/backers/badge.svg" alt="Backers on Open Collective" /></a>
<a href="https://opencollective.com/nest#sponsor" target="_blank"><img src="https://opencollective.com/nest/sponsors/badge.svg" alt="Sponsors on Open Collective" /></a>
<a href="https://paypal.me/kamilmysliwiec" target="_blank"><img src="https://img.shields.io/badge/Donate-PayPal-ff3f59.svg"/></a>
<a href="https://opencollective.com/nest#sponsor" target="_blank"><img src="https://img.shields.io/badge/Support%20us-Open%20Collective-41B883.svg" alt="Support us"></a>
<a href="https://twitter.com/nestframework" target="_blank"><img src="https://img.shields.io/twitter/follow/nestframework.svg?style=social&label=Follow"></a>
</p>
<!--[![Backers on Open Collective](https://opencollective.com/nest/backers/badge.svg)](https://opencollective.com/nest#backer)
[![Sponsors on Open Collective](https://opencollective.com/nest/sponsors/badge.svg)](https://opencollective.com/nest#sponsor)-->

## Description

[Nest](https://github.com/nestjs/nest) framework TypeScript starter repository.

## Installation

```bash
$ yarn install
```

## Running the app

```bash
# development
$ yarn run start

# watch mode
$ yarn run start:dev

# production mode
$ yarn run start:prod
```

## Test

```bash
# unit tests
$ yarn run test

# e2e tests
$ yarn run test:e2e

# test coverage
$ yarn run test:cov
```

## Support

Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please [read more here](https://docs.nestjs.com/support).

## Stay in touch

- Author - [Kamil Myśliwiec](https://kamilmysliwiec.com)
- Website - [https://nestjs.com](https://nestjs.com/)
- Twitter - [@nestframework](https://twitter.com/nestframework)

## License

Nest is [MIT licensed](LICENSE).
35 changes: 35 additions & 0 deletions server/docker-compose.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
version: '3.8'
services:
postgresql_db:
image: postgres:15
restart: always
volumes:
- ./postgres-data:/var/lib/postgresql/data
ports:
- '5433:5432'
environment:
POSTGRES_USER: ${DB_USERNAME}
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_DB: ${DB_DATABASE}
redis:
image: redis
restart: always
ports:
- 6379:6379

# nestjs_server:
# build: .
# ports:
# - '3000:3000'
# depends_on:
# - postgresql_db
# environment:
# JWT_SECRET: ${JWT_SECRET}
# HASH_ROUNDS: ${HASH_ROUNDS}
# PROTOCOL: ${PROTOCOL}
# HOST: ${HOST}
# DB_HOST: ${DB_HOST}
# DB_PORT: ${DB_PORT}
# DB_USERNAME: ${DB_USERNAME}
# DB_PASSWORD: ${DB_PASSWORD}
# DB_DATABASE: ${DB_DATABASE}
8 changes: 8 additions & 0 deletions server/nest-cli.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"$schema": "https://json.schemastore.org/nest-cli",
"collection": "@nestjs/schematics",
"sourceRoot": "src",
"compilerOptions": {
"deleteOutDir": true
}
}
92 changes: 92 additions & 0 deletions server/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
{
"name": "server",
"version": "0.0.1",
"description": "",
"author": "",
"private": true,
"license": "UNLICENSED",
"scripts": {
"build": "nest build",
"format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
"start": "nest start",
"start:dev": "nest start --watch",
"start:debug": "nest start --debug --watch",
"start:prod": "node dist/main",
"lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix",
"test": "jest",
"test:watch": "jest --watch",
"test:cov": "jest --coverage",
"test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand",
"test:e2e": "jest --config ./test/jest-e2e.json"
},
"dependencies": {
"@nestjs/axios": "^3.0.1",
"@nestjs/common": "^10.0.0",
"@nestjs/config": "^3.1.1",
"@nestjs/core": "^10.0.0",
"@nestjs/jwt": "^10.2.0",
"@nestjs/mapped-types": "*",
"@nestjs/platform-express": "^10.0.0",
"@nestjs/platform-ws": "^10.2.10",
"@nestjs/typeorm": "^10.0.0",
"@nestjs/websockets": "^10.2.10",
"@panva/jose": "^1.9.3",
"axios": "^1.6.2",
"class-transformer": "^0.5.1",
"class-validator": "^0.14.0",
"cookie-parser": "^1.4.6",
"nest-winston": "^1.9.4",
"pg": "^8.11.3",
"redis": "^4.6.11",
"reflect-metadata": "^0.1.13",
"rxjs": "^7.8.1",
"typeorm": "^0.3.17",
"uuid": "^9.0.1",
"winston": "^3.11.0",
"winston-daily-rotate-file": "^4.7.1"
},
"devDependencies": {
"@nestjs/cli": "^10.0.0",
"@nestjs/schematics": "^10.0.0",
"@nestjs/testing": "^10.0.0",
"@types/express": "^4.17.17",
"@types/jest": "^29.5.2",
"@types/node": "^20.3.1",
"@types/supertest": "^2.0.12",
"@typescript-eslint/eslint-plugin": "^6.0.0",
"@typescript-eslint/parser": "^6.0.0",
"eslint": "^8.42.0",
"eslint-config-prettier": "^9.0.0",
"eslint-plugin-prettier": "^5.0.0",
"jest": "^29.5.0",
"prettier": "^3.0.0",
"source-map-support": "^0.5.21",
"supertest": "^6.3.3",
"ts-jest": "^29.1.0",
"ts-loader": "^9.4.3",
"ts-node": "^10.9.1",
"tsconfig-paths": "^4.2.0",
"typescript": "^5.1.3"
},
"jest": {
"moduleFileExtensions": [
"js",
"json",
"ts"
],
"rootDir": "src",
"moduleNameMapper": {
"^src/(.*)$": "<rootDir>/$1",
"^test/(.*)$": "<rootDir>/../test/$1"
},
"testRegex": ".*\\.spec\\.ts$",
"transform": {
"^.+\\.(t|j)s$": "ts-jest"
},
"collectCoverageFrom": [
"**/*.(t|j)s"
],
"coverageDirectory": "../coverage",
"testEnvironment": "node"
}
}
Loading
Loading