/SogongSogong-back

솔루션챌린지 소공소공 백엔드

Primary LanguageKotlin

Contributors Forks Stargazers Issues


Logo

Sogong Sogong (소공소공)
Anonymous Communication Platform for Small Business to solve the UN's SDGS No.8.

Explore the notion (Only In Korean)
View Demo · Report Bug & Request Feature · Front-End Readme

Table of Contents
  1. Introduction
  2. Tech Stack(Back-End)
  3. Prerequisites
  4. Back-End Structure

Introduction

This is Back-End readme page about Sogong Sogong Project.

If you want to see details about service, please enter the link down below.
SogongSogong-Front Readme.md

Tech Stack(Back-End)


Prerequisites

To edit file, you need to install ...

  • Latest version of IntelliJ IDEA
  • Kotlin 1.6.10
  • Spring Boot 2.6.3
  • MySQL 8.0

Back-End Structure

ERD



Detail description about DB, see this part.

Directory

Main sources are placed to 'SogongSogong-back/src/main/kotlin/sogong/sogongSpring'.

1. Controller

  • There are three controllers, which named 'BoardController', 'HastagContorller' and 'UserController'.
  • 'BoardController' is about board CRUD controller.
  • We designed as REST api and also conformed RESTful as much as possible.

2. DTO

  • DTOs created which need to send input and output to client.
  • Used less DTOs than Entities because it's still under development.
    I will add it soon.

3. Entity, Repository

  • EntirePost : Information about post writing.
  • EntireComment : Information about comment writing.
  • ScrapLike : Information about clippings and liked of one post that other users saved.
  • HashtagDb : Information about types of hashtag.
  • PostHashtag : Information about hashtags of one post that user wrote.
  • UserHashtag : Information about hashtags of 'Hastag Board' that user designated and saved.

4. Service

  • I seperated it according to controller detailed functions.
  • Board : Saving service about board.
    It includes save not only boards but also comments, clippings, liked.
  • BoardEdit : Editing Service about board.
    The things to edit are same as Board Service.
  • BoardPrint : Printing service about board.
    The things to print are same as Board Service and 'Hot Post', 'Best Post' also included.
  • Hastag : CRUD service about hashtag.
  • User : Auth service about inqure into business license number through external API.
    Verifying business license is only available on Korea, other countries will support soon.
    Details about external API that I used can be seen in this link.
  • CustomException : Class about custom exceptions that handle easier.

Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create.
Any contributions you make are greatly appreciated.

  1. Request Feature yourself
  2. Fork the Project
  3. Create your Feature Branch (git checkout -b feature/#{IssueNumber})
    • ex) feature/#1
  4. Commit your Changes (git commit -m 'Issue #{IssueNumber} feat: Add some AmazingFeature')
  5. Push to the Branch (git push origin feature/#{IssueNumber})
  6. Open a Pull Request