An open API service indexing awesome lists of open source software.

https://github.com/codestates-seb/seb40_pre_035

스택오버플로우 클론 코딩입니다.
https://github.com/codestates-seb/seb40_pre_035

aws-ec2 java javascript react spring tailwind-css

Last synced: about 1 year ago
JSON representation

스택오버플로우 클론 코딩입니다.

Awesome Lists containing this project

README

          

# Team. 3355
안녕하세요. 삼삼오오 모인 3355팀입니다!😉

## 😋 **팀원 소개**

|![노민하](https://avatars.githubusercontent.com/u/53070295?v=4)|![김예현](https://avatars.githubusercontent.com/u/107603123?v=4)|![신병규](https://avatars.githubusercontent.com/u/94808683?v=4)|![김민아](https://avatars.githubusercontent.com/u/36831218?v=4)|![김동진](https://avatars.githubusercontent.com/u/94734089?v=4)|![백승필](https://avatars.githubusercontent.com/u/71927001?v=4)|![박성우](https://avatars.githubusercontent.com/u/77265289?v=4)|
|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
|[노민하](https://github.com/MinaRoh)|[김예현](https://github.com/roxpray)|[신병규](https://github.com/byeonggyu-shin)|[김민아](https://github.com/rmaomina)|[김동진](https://github.com/PNUHCT)|[백승필](https://github.com/philE22)|[박성우](https://github.com/hipopotamus)|
|FE|FE|FE|FE|BE|BE|👑팀장
BE|

## **✨서비스 소개**
Stack Overflow Clone Coding
스택 오버플로우 클론 코딩입니다.

![image](https://user-images.githubusercontent.com/53070295/200287719-dbe3935d-b0b8-42c6-9115-f7eba7dfe4ca.png)

> Account (signup & login & mypage)
- ✅ Create: 유저는 계정을 생성할 수 있다.
- ✅ Read: 유저는 생성한 계정을 확인할 수 있다.
- ✅ Update: 유저는 생성한 계정 정보를 수정 할 수 있다.
- ✅ Delete: 유저는 생성한 계정을 삭제할 수 있다.
> Question
- ✅ Create: 유저는 질문을 생성할 수 있다.
- ✅ Read: 질문 상세 페이지를 조회할 수 있다.
- ✅ Update: 작성자는 질문을 수정할수 있다.
- ✅ Delete: 작성자는 질문을 삭제할 수 있다.
> Answer
- ✅ Create: 유저는 답변을 작성할 수 있다.
- ✅ Read: 유저가 작성한 답변을 조회할 수 있다.
- ✅ Delete: 작성자는 답변을 삭제할 수 있다.
> Vote
- ✅ 로그인한 유저는 질문에 추천을 누를 수 있다.
- ✅ 로그인한 유저는 답변에 추천을 누를 수 있다.

> Etc.
- 🎸 로그인이 필요한 기능에 대하여 경고문을 주고 로그인 페이지로 리다이렉트 한다.
- 🎸 계정, 질문, 답변 삭제는 모달을 띄워 사용자의 예기치 못한 실수를 방지한다.
- 🎸 에디터 작성, html로 작성한 콘텐츠를 직렬화하여 서버에 전달한다.
- 🎸 에디터 조회, 서버에서 가져온 콘텐츠를 파싱하여 출력한다.
- 🎸 에디터 이미지 업로드, form-data를 사용하여 서버에 이미지를 전달한다.

## **👩‍💻기술 스택**

### **Front-end**

### **Back-end**

### **Common**

## **💻 local 실행 방법**

Front-end

> 🚧 프록시 서버 (http://[localhost](http://localhost):3000) 127.0.0.1:3000으로 설정된 파일은 test 브랜치로 올렸습니다.
(추후에 EC2가 내려가면 main에 로컬 경로로 변경해서 올리겠습니다.)
빌드가 필요할 때는 `npm run build` 하면 build 폴더에 webpack으로 번들링합니다.

### 1. git clone 해오기
```bash
git clone git@github.com:codestates-seb/seb40_pre_035.git
```
### 2. `cd front`
![image](https://user-images.githubusercontent.com/53070295/200290406-7e137a61-5d79-4f19-909f-e8d67b64b3d9.png)
### 3. `npm ci --legacy-peer-deps` npm 설치
![image](https://user-images.githubusercontent.com/53070295/200290644-dc8fc364-d50a-421f-ae6e-b5bdc8ba09a5.png)
### 4. `npm run start` 브라우저에서 리액트를 실행.
![image](https://user-images.githubusercontent.com/53070295/200291014-916da701-84c0-4284-bdd3-388dc1359c29.png)
### 5. npm 서버를 내릴 때까지 잘 작동.
![image](https://user-images.githubusercontent.com/53070295/200291353-34677027-212c-4315-aa0f-cf8330ade7f2.png)
### 6. 터미널에서 `ctrl+C` 또는 `cmd + C` 로 서버 종료
![image](https://user-images.githubusercontent.com/53070295/200291692-a22b63e9-0d5b-4e17-b002-9947b89bfe79.png)


Back-end

### 1. java 설치

`sudo apt update`

`sudo apt install openjdk-11-jre-headless`

위 명령어를 터미널에서 실행

### 2. git clone 해오기

```bash
git clone git@github.com:codestates-seb/seb40_pre_035.git
```

![image](https://user-images.githubusercontent.com/77265289/200238459-5df44229-4011-4dfd-a03f-c6af1201b5be.png)

- local 브랜치 생성 및 이동

![image](https://user-images.githubusercontent.com/77265289/200238547-9c434644-6a2c-40f3-b095-8adc9dfdcb48.png)

- local 브랜치 pull

![image](https://user-images.githubusercontent.com/77265289/200238620-2a35f9fe-7174-4f56-af99-7c6e905e626a.png)

### 3. application.yml 파일 설정

- application.yml에 파일이 저장될 경로를 지정

설정 예시)

![image](https://user-images.githubusercontent.com/77265289/200238651-8e5bb297-4566-40a8-a113-f13f7def32b0.png)

![image](https://user-images.githubusercontent.com/77265289/200238689-1f96510e-c344-484e-b128-173ed87f4ebd.png)

local 경로에서 파일이 저장될 위치를 지정해주어야 합니다.

### 4. build

back 폴더로 가서 build를 실행합니다.

![image](https://user-images.githubusercontent.com/77265289/200238740-c61c704c-ed57-49c0-bfb8-c018d10c99c2.png)

### 5. 실행

back폴더에서 다음 명령어 실행

![image](https://user-images.githubusercontent.com/77265289/200238782-d2685809-2361-44ea-8b37-e3b427a3b202.png)

- 백그라운드에서 실행하는 방법

![image](https://user-images.githubusercontent.com/77265289/200238862-80960451-415b-407f-80f9-5a875d57ddd8.png)

- 백그라운드에서 실행되고있는 spring 끄기

다음 명령어로 PID 찾기

![image](https://user-images.githubusercontent.com/77265289/200238921-4847a27b-5479-42e3-b46c-5e68ec3e29cd.png)

![image](https://user-images.githubusercontent.com/77265289/200238966-2915c166-bee4-4ad7-af69-753f7c01fef5.png)

삭제

![image](https://user-images.githubusercontent.com/77265289/200239005-1e2d0d94-2e9a-4035-8597-22729c03e000.png)



## **🏄‍ User Flow**
![userflow2](https://user-images.githubusercontent.com/36831218/207521946-b2163f92-2bbe-4106-b380-25b8ab8b8346.png)

## **👍 Demo**
### 📍[API 명세서](https://3355api.netlify.app/)

### 📍**Home**
Homescreen

### 📍**Question Detail**
![detail](https://user-images.githubusercontent.com/36831218/207522383-b15fea36-ca64-4fb2-a410-43f9fbfbdbd4.png)

### 📍**Question Create**
![Kapture 2022-11-07 at 15 39 53](https://user-images.githubusercontent.com/53070295/200242000-dab5f8a7-690f-4a83-9568-6c93b11a5c78.gif)

### 📍**Question Search**
![search](https://user-images.githubusercontent.com/36831218/207522503-3e2f9c23-63f8-4b1e-8baa-b491a31845ed.png)

### 📍**Sign up**
![Kapture 2022-11-07 at 19 53 36](https://user-images.githubusercontent.com/53070295/200293732-11000632-5338-4076-9952-39dd29387425.gif)

### 📍**Login**
![Kapture 2022-11-07 at 19 53 36](https://user-images.githubusercontent.com/53070295/200294021-9496470c-6913-413d-8422-c988bcfab561.gif)

### 📍**Mypage**
![mypage](https://user-images.githubusercontent.com/36831218/207522593-0aedc632-bd18-4265-880b-dd7cd85860c0.png)