Skip to content

๐Ÿ‡ฐ๐Ÿ‡ท[Forword: ํ•œ๊ตญ ๊ด€๊ด‘์ง€ ์†Œ๊ฐœ๋ฅผ ํ†ตํ•œ ํ•œ๊ตญ์–ด ํ•™์Šต ์–ดํ”Œ] ๋ฐฑ์—”๋“œ(Spring Boot)

Notifications You must be signed in to change notification settings

KoreaGuide/KoreaGuide_Server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ‡ฐ๐Ÿ‡ทKoreaGuide_Server๐Ÿ‡ฐ๐Ÿ‡ท

This project serves as the backend of a mobile application "Forword".
The backend is developed in the form of a RESTAPI.

Forword is an abbreviation of Foreign + Word
The pronounciation of this word is similar to the English word "Forward", which means to move furthur to a certain destination

We hope that users of FORWORD could move FORWARD with their journey of learning the Korean culture, especially the language and famous places

๐ŸŒƒProject Introduction๐ŸŒƒ

Problem:

  • Decreasing foreign tourists visiting Korea, due to COVID-19
  • Lack of true knowledge of the Korean culture and language of foreigners despite the increasing popularity of k-pop and k-drama
  • No services available for foreigners to learn the Korean language in a beginner level

Our Service:

  • Provides a contactless way of touring Korea
  • Allows users to learn the Korean language through the introduction of famous tourist spots

๐Ÿ“ฑProject Images๐Ÿ“ฑ

Image Description
แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2021-08-21 แ„‹แ…ฉแ„Œแ…ฅแ†ซ 9 39 21 Splash, Login, Register
แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2021-08-21 แ„‹แ…ฉแ„Œแ…ฅแ†ซ 9 40 52 Home
with "Word of the Day"
& 3 tourist spots
แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2021-08-21 แ„‹แ…ฉแ„’แ…ฎ 12 36 37 Place List & Map Customization
แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2021-08-21 แ„‹แ…ฉแ„Œแ…ฅแ†ซ 9 50 56 Place Detail
with Information & Related words
แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2021-08-21 แ„‹แ…ฉแ„Œแ…ฅแ†ซ 10 00 46 My Word Folder & WordList
แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2021-08-21 แ„‹แ…ฉแ„Œแ…ฅแ†ซ 10 02 24 Quiz (Type 1)
Complete the spelling of word letter by letter
แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2021-08-21 แ„‹แ…ฉแ„Œแ…ฅแ†ซ 10 05 13 Quiz(Type 2 & 3)
Type2: Listen to the pronounciation & match word
Type3:Enter the Korean spelling
แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2021-08-21 แ„‹แ…ฉแ„Œแ…ฅแ†ซ 10 05 49 Quiz(Type 4)
Match the meaning word
แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2021-08-21 แ„‹แ…ฉแ„’แ…ฎ 12 37 42 My Profile

๐Ÿ’ปInstallation and Set up๐Ÿ’ป

To begin using this template, choose one of the following options to get started:

To set up the database with pre-defined SQL statements, please refer to the file below:

๐Ÿ“Requirements๐Ÿ“

  • Java Version 11
  • Spring Boot Version 2.4.3
  • MySQL Version 8.0.23

๐Ÿ“•Dependencies๐Ÿ“•

    //jwt
    implementation 'io.jsonwebtoken:jjwt-api:0.10.5'
    runtime 'io.jsonwebtoken:jjwt-impl:0.10.5'
    runtime 'io.jsonwebtoken:jjwt-jackson:0.10.5'

    compile 'mysql:mysql-connector-java'
    compile 'org.projectlombok:lombok:1.18.10'
    annotationProcessor 'org.projectlombok:lombok:1.18.10'
    implementation 'org.springframework.boot:spring-boot-starter-web'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
    compile 'org.springframework.boot:spring-boot-starter-validation'
    compile 'org.springframework.boot:spring-boot-starter-data-jpa'
    implementation 'org.springframework.boot:spring-boot-starter-security'
    

๐Ÿ”Project Functions๐Ÿ”

  1. Duplicate check of emails
  2. User Registeration
  3. Login
  4. Modify / Delete User information
  5. Provide Today's word
  6. Provide 3 randomly selected tourist place everyday
  7. Create/ Update/ DeleteMy Word Folder
  8. Add / Delete to My Wordlist
  9. Map customization (change color of regions)
  10. Read placelists (in all regions, per region)
  11. Place Detail (detailed information & related words)
  12. Learn words in my wordlist(READ)
  13. Quiz (4Types)
  14. Create / Read my Quiz Result
  15. Create / Delete / Update My map (wishlist & have been to lists)

๐Ÿ“šAPI Endpoints๐Ÿ“š

User Related Endpoints

Request Type Path Need Token Method Description
POST /api/user NO CREATE Create User & save access token for user - Register (ํšŒ์›๊ฐ€์ž…)
GET /api/user/{id} YES READ Get information of 1 particular user (์‚ฌ์šฉ์ž ์ •๋ณด ์กฐํšŒ)
PATCH /api/user/{id} YES UPDATE Update information of a particular user (์‚ฌ์šฉ์ž ์ •๋ณด ์ˆ˜์ •)
DELETE /api/user/{id} YES DELETE Delete user (์‚ฌ์šฉ์ž ์‚ญ์ œ)
POST /api/user/checkDuplicate NO - Check Duplicate user by email (์‚ฌ์šฉ์ž ์ด๋ฉ”์ผ ์ค‘๋ณต ํ™•์ธ - ํšŒ์›๊ฐ€์ž… ํŽ˜์ด์ง€์—์„œ ์‚ฌ์šฉํ•˜๋ฉด ๋จ)
POST /api/user/login NO - User Login(์‚ฌ์šฉ์ž ๋กœ๊ทธ์ธ)

Home Related Endpoints

Request Type Path Need Token Method Description
GET /api/home/ YES READ & CREATE Get information needed in home page(ํ™ˆ ํ™”๋ฉด์—์„œ ํ•„์š”ํ•œ ์ •๋ณด ์กฐํšŒ)

MyWordFolder (๋‚ด ๋‹จ์–ด์žฅ ํด๋”) Related Endpoints

Request Type Path Need Token Method Description
POST api/myWordFolder/ YES CREATE Make my word folder (๋‚ด ๋‹จ์–ด์žฅ ํด๋” ์ƒ์„ฑ)
GET api/myWordFolder/{id} YES READ Get my word folder list (๋‚ด ๋‹จ์–ด์žฅ ํด๋” ๋ชฉ๋ก ๋ณด๊ธฐ)
DELETE api/myWordFolder/{id} YES DELETE Delete my word folder list(๋‚ด ํŠน์ • ๋‹จ์–ด์žฅ ํด๋” ์‚ญ์ œ)
PATCH api/myWordFolder/{id} YES UPDATE Modify my word folder name(๋‚ด ํŠน์ • ๋‹จ์–ด์žฅ ์ด๋ฆ„ ๋ณ€๊ฒฝ)
GET api/myWordFolder/learn/{id}?page={pageNumber} YES READ Learn certain words in a particular word folder (๋‚ด ํŠน์ • ๋‹จ์–ด์žฅ ํด๋”์— ์žˆ๋Š” ๋‹จ์–ด๋“ค ํ•™์Šตํ•˜๊ธฐ) - With Pagination
GET api/myWordFolder/learnWord/{id}/{folderId} YES READ Learn certain words in a particular word folder (๋‚ด ํŠน์ • ๋‹จ์–ด์žฅ ํด๋”์— ์žˆ๋Š” ๋‹จ์–ด๋“ค ํ•™์Šตํ•˜๊ธฐ) - Without Pagination

MyWord (๋‚ด ๋‹จ์–ด์žฅ) Related Endpoints

Request Type Path Need Token Method Description
POST /api/myWord/{id} YES CREATE Add certain word to a particular word folder(ํŠน์ • ๋‹จ์–ด์žฅ ํด๋”์— ํŠน์ • ๋‹จ์–ด ์ถ”๊ฐ€)
GET api/myWord/{id}/{wordFolderId YES READ Get all wordlist in a particular word folder(ํŠน์ • ๋‹จ์–ด์žฅ ํด๋”์— ์žˆ๋Š” ๋‹จ์–ด๋“ค ์ •๋ณด ์กฐํšŒ)
DELETE /api/myWord/{id} YES DELETE Delete a particular word in a word folder(ํŠน์ • ๋‹จ์–ด์žฅ ํด๋”์— ์žˆ๋Š” ํŠน์ • ๋‹จ์–ด ์‚ญ์ œ)

Place Related Endpoints

Request Type Path Need Token Method Description
GET /api/place/regionList/{id} YES READ Get all region list (๋ชจ๋“  ์ง€์—ญ์— ๋Œ€ํ•œ ์ •๋ณด ์กฐํšŒ(์ง€์—ญ ๋ฆฌ์ŠคํŠธ ๋ฐ›๊ธฐ))
PATCH /api/place/regionList/{id} YES UPDATE Change color of a certain region (์–ด๋–ค ์ง€์—ญ์˜ ์ƒ‰ ๋ฐ”๊พธ๊ธฐ)
GET /api/place/region/{userId}/{id} YES READ Get all place list in a certain region(ํŠน์ • ์ง€์—ญ์— ๋Œ€ํ•œ ๊ด€๊ด‘์ง€ ๋ฆฌ์ŠคํŠธ ์กฐํšŒ)

Place Detail Related Endpoints

Request Type Path Need Token Method Description
GET /api/place/detail/{userId}/{id} YES READ Get information of a certain place in both English & Korean (ํŠน์ • ๊ด€๊ด‘์ง€์— ๋Œ€ํ•œ ์ •๋ณด ์กฐํšŒ (์˜์–ด & ํ•œ๊ตญ์–ด))
GET /api/place/detail/eng/{userId}/{id} YES READ Get information of a certain place in English (ํŠน์ • ๊ด€๊ด‘์ง€์— ๋Œ€ํ•œ ์ •๋ณด ์กฐํšŒ (์˜์–ด))
GET /api/place/detail/kor/{userId}/{id} YES READ Get information of a certain place in Korean (ํŠน์ • ๊ด€๊ด‘์ง€์— ๋Œ€ํ•œ ์ •๋ณด ์กฐํšŒ (ํ•œ๊ตญ์–ด))
GET /api/place/word/{userId}/{id}?page={pageNumber} YES READ Get all wordlist related to a certain place (ํŠน์ • ๊ด€๊ด‘์ง€์˜ ๋‹จ์–ด ๋ฆฌ์ŠคํŠธ) - with pagination
GET /api/place/wordList/{userId}/{id} YES READ Get all wordlist related to a certain place (ํŠน์ • ๊ด€๊ด‘์ง€์˜ ๋‹จ์–ด ๋ฆฌ์ŠคํŠธ) - without pagination

My Map Related Endpoints

Request Type Path Need Token Method Description
POST api/myMap/{id} YES CREATE Add place to my map(๋‚ด ์ง€๋„์— ์žฅ์†Œ ๋„ฃ๊ธฐ(wish & have been to))
GET api/myMap/all/{id} YES READ Get all place list in my map(๋‚ด ์ง€๋„์— ํฌํ•จ๋œ ๋ชจ๋“  ์žฅ์†Œ ๋ณด๊ธฐ(wish & have been to))
GET api/myMap/wish/{id} YES READ Get place list in my map(๋‚ด ์ง€๋„์— ํฌํ•จ๋œ ์žฅ์†Œ ๋ณด๊ธฐ(wish ONLY))
GET api/myMap/haveBeen/{id} YES READ Get place list in my map(๋‚ด ์ง€๋„์— ํฌํ•จ๋œ ์žฅ์†Œ ๋ณด๊ธฐ(have been to ONLY))
PATCH api/myMap/{id} YES UPDATE Modify place information in my map(๋‚ด ์ง€๋„์— ์žˆ๋Š” ์žฅ์†Œ ์ˆ˜์ •)
DELETE api/myMap/{id} YES DELETE Delete place in my map(๋‚ด ์ง€๋„์— ์žˆ๋Š” ์žฅ์†Œ ์‚ญ์ œ)
POST api/myMap/upload/{id} YES CREATE / UPDATE Create and update json file for map customization(์ง€๋„ ์ƒ‰ ๋ถ€๋ถ„์—์„œ ํ•„์š”ํ•œ json ํŒŒ์ผ ์˜ฌ๋ฆฌ๊ธฐ / ์—…๋ฐ์ดํŠธ)
GET api/myMap/download/{id} YES READ Get json file related to map color(์ง€๋„ ์ƒ‰ ๋ถ€๋ถ„์—์„œ ํ•„์š”ํ•œ json ํŒŒ์ผ ๋ฐ›๊ธฐ)

WORD Related Endpoints

Request Type Path Need Token Method Description
GET api/word/{wordId} YES READ Get specific information of a certain word(ํŠน์ • ๋‹จ์–ด์— ๋Œ€ํ•œ ์ •๋ณด ์กฐํšŒ (HOME์˜ ๋‹จ์–ด๋ž‘ ์—ฐ๊ฒฐ์‹œ ์‚ฌ์šฉ))

Quiz Related Endpoints

Request Type Path Need Token Method Description
POST api/quiz/{id} YES READ Get quiz material(ํ•ด๋‹น ํ€ด์ฆˆ์— ์ถœ์ œ๋  ๋ฌธ์ œ๋ชฉ๋ก ๋ฐ ๊ฐ๊ด€์‹ ๋ชฉ๋ก ๋ฐ›์•„์˜ค๊ธฐ)
POST api/quiz/result/{id} YES UPDATE Update quiz result(ํ€ด์ฆˆ ์ข…๋ฃŒ ํ›„ ํ•ด๋‹น ํ€ด์ฆˆ์˜ ๊ฒฐ๊ณผ ์„œ๋ฒ„์— ์—…๋ฐ์ดํŠธ)

Profile Related Endpoints

Request Type Path Need Token Method Description
GET api/profile/{id} YES READ Get information of users attendance & quiz result for this week (์‚ฌ์šฉ์ž์˜ 1์ฃผ์ผ์น˜ ์ถœ์„ & ๋‹จ์–ด ์‹œํ—˜ ๊ฒฐ๊ณผ ์กฐํšŒ)

ERD

See SQL แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2021-06-07 แ„‹แ…ฉแ„Œแ…ฅแ†ซ 12 52 42

๐Ÿ“ฅExamples & Explanation of Basic Request & Responses๐Ÿ“ฅ

Example of Token in header Basic Token header
Authorization Bearer eyJhbGciOiJIUzI1NiJ9.eyJ1c2VySWQiOjExLCJuYW1lIjoiQ2luZGlhIn0.vNieUBizIAzhwpAv_J2m9GSMMUO96LTaWPLxYYOG_W8

Token for login & register & checkDuplicate (Made due to front-end request)

Authorization Bearer no_value
Response if wrong / no Token provided (ํ—ค๋”์— ํ† ํฐ ์—†๊ฑฐ๋‚˜ ํ‹€๋ ค์„œ ์ƒ๊ธฐ๋Š” ์˜ค๋ฅ˜) แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2021-08-21 แ„‹แ…ฉแ„’แ…ฎ 1 01 42
Explanation of Pagination แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2021-08-21 แ„‹แ…ฉแ„’แ…ฎ 1 01 07
    - total pages: ์ด ํŽ˜์ด์ง€
    - total elements: ํŽ˜์ด์ง€๋„ค์ด์…˜ํ•˜๋Š” ์•„์ดํ…œ์˜ ์ด ์ˆ˜
    - current page: ํ˜„์žฌ ํŽ˜์ด์ง€ 
    - current elements: ํ˜„์žฌ ํŽ˜์ด์ง€์— ์žˆ๋Š” ์•„์ดํ…œ์˜ ์ˆ˜ 

** pageNumber์€ 1๋ถ€ํ„ฐ ์‹œ์ž‘! 

๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ปTeam Members & role๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป

๐Ÿ“†Overall Development Schedule๐Ÿ“†

๐Ÿ”ด All Team Members
๐ŸŸข Jisoo Kim
๐Ÿ”ต Chihyun Song
๐ŸŸก Seonho Im
แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2021-08-21 แ„‹แ…ฉแ„’แ…ฎ 12 42 48

About

๐Ÿ‡ฐ๐Ÿ‡ท[Forword: ํ•œ๊ตญ ๊ด€๊ด‘์ง€ ์†Œ๊ฐœ๋ฅผ ํ†ตํ•œ ํ•œ๊ตญ์–ด ํ•™์Šต ์–ดํ”Œ] ๋ฐฑ์—”๋“œ(Spring Boot)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages