Skip to content

kaustubhdeokar/Blogging-Application

Repository files navigation

### HLD

+-------------------------+
|     User Interface      |
|       - Web UI          |
+-------------------------+
        |
        V
+--------------------------+         +--------------------------+
| Authentication Service   |<------> |    User Management       |
| - Login                  |         |  - Register              |
| - JWT Token Generation   |         |  - Profile               |
+--------------------------+         +--------------------------+
        |                                    |
        V                                    V
+------------------------------+        +------------------------------+
|     Topic Management         |        |      Post Management         |
|  - Create/Read/Update/Delete |        |  - Create/Read/Update/Delete |
+------------------------------+        +------------------------------+
        |                                    |
        V                                    V
  +--------------------------+        +-------------------------+
  |    Subscription Service  |        |    Comment Management   |
  |  - Subscribe/Unsubscribe |        |    - Add/Edit/Delete    |
  +--------------------------+        +-------------------------+
          |                                  |
          V                                  V
+--------------------------+        +----------------------------+
|    Search Topic Service  |        |   Voting Service           |
|                          |        |  Upvote/Downvote Posts     |
+--------------------------+        +----------------------------+                                             
+ ------------------------------+ Database +------------------------------+
        +-------------------------+  +-------------------------+
        |     MySQL               |  |   MongoDB (Comments)    |
        +-------------------------+  +-------------------------+
                

Overview

A blogging application created using spring boot, reddit, MySQL DB.

Supports functionality for

  • User authentication & authorization via spring security using with JWT tokens.
  • Supports CRUD operation regarding creation of Topics.
  • Supports CRUD operation regarding creation of posts inside topics.
  • Topics, multiple posts under each topic
  • User - topic subscription
  • Comments under posts stored in MongoDB.
  • Votes for each posts.
  • Search functionality for topics.

Note

  • Collection of APIs through Postman is found in file bloApp.postman_collection.json(ready to import)
  • Endpoints documented via OpenAPI/Swagger-UI. http://localhost:8080/swagger-ui/index.html
  • The schema for the same can be found in file schema.sql in the root directory.
  • For running it locally, setup.md can be used to download the required additional applications.

Changes:

  • Comment Management: The Comment Management service remains as is, but it now interacts with MongoDB instead of MySQL.