Skip to content

A blog site for sharing ideas, stories and reflections

License

Notifications You must be signed in to change notification settings

sthsuyash/ScribbleStream

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Blog Site

Description

A simple web application for blog site created using SpringBoot for backend as Maven project which integrates MySQL for database connection and AngularJS for frontend.

People can create account to add blogs.

  • The app is created following Uncle Bob's clean code philosophy as much as possible.
  • implemented Spring MVC architecture.
  • Spring Security features for login/signup.
  • Also uses JWT token based authorization feature.

Flowchart of app architecture

App architecture flowchart

Use Case Diagram

Use Case Diagram

A use case diagram is a graphical depiction of a user's possible interactions with a system. A use case diagram shows various use cases and different types of users the system has and will often be accompanied by other types of diagrams as well. The use cases are represented by either circles or ellipses. The user's interactions with the system are represented by arrows.

A use case diagram doesn't go into a lot of detail—for example, don't expect it to model the order in which steps are performed. Instead, a proper use case diagram depicts a high-level overview of the relationship between use cases, actors, and systems.

DFD-0 and DFD-1 with ERD & data schema and annotations

  • Database schema is the structure of a database described in a formal language supported by the database management system.

  • Entity relationship diagram (ERD), also known as an entity relationship model, is a graphical representation that depicts relationships among people, objects, places, concepts or events within an information technology (IT) system.

  • Data Flow Diagram (DFD) provides a visual representation of the flow of information (i.e. data) within a system. By drawing a Data Flow Diagram, you can tell the information provided by and delivered to someone who takes part in system processes, the information needed to complete the processes and the information needed to be stored and accessed.

    • DFD-0 (Context DFD):

      A context diagram is a data flow diagram that only shows the top level, otherwise known as Level 0. At this level, there is only one visible process node that represents the functions of a complete system in regards to how it interacts with external entities.

      Some of the benefits of a Context Diagram are:

      • Shows the overview of the boundaries of a system
      • No technical knowledge is required to understand with the simple notation
      • Simple to draw, amend and elaborate as its limited notation.

    • DFD-1 (System DFD):

    DFD Level 1 provides a more detailed breakout of pieces of the Context Level Diagram. You will highlight the main functions carried out by the system, as you break down the high-level process of the Context Diagram into its subprocesses.

  • DFD-0 of blog site is shown in the image below. DFD-0

  • DFD-1 of blog site is shown in the image below. DFD-1

Prerequisites

  • Java version 8+

  • SpringBoot 2.2.x

  • MySQL 8.0.18

  • Angular version 14.2.x

  • Node version 10.x

  • Maven Dependencies for pom.xml

  • Application.properties

   security.enable.csrf=false
   spring.main.allow-circular-references=true
   
   spring.datasource.url=jdbc:mysql://localhost:3306/blog  
   spring.datasource.username=${USERNAME}
   spring.datasource.password=${PASSWORD}
   
   spring.jpa.hibernate.ddl-auto=update
   spring.jpa.show-sql=true
   spring.jpa.properties.hibernate.format_sql=true
   
   server.error.include-message=always

Running the Application

  • Clone the repository to your local device.

    git clone https://github.com/sthsuyash/Blog-Site.git
    
  • Configure the Application.properties file.

    in the place of USERNAME and PASSWORD , put your database username and password

    spring.datasource.username=${USERNAME}
    spring.datasource.password=${PASSWORD}
  • Run the Application using IntelliJ IDEA or STS.

    mvn clean package
    
    ./mvnw spring-boot:run
    

Contributing

To contribute to this app

  • First, fork the repository. Now there will be a copy of this repo in your account.

  • Clone the repository in your account and make changes to your local repo

    git clone ${your_repo_url}
    
  • To add features to the main repository, open Pull Request.

License

Copyright (c) 2012-2022 Scott Chacon and others

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Contact