Application for creating blog posts, developed with Java using Spring Framework for backend and Angular along with PrimeNG Library for frontend development.

Overview

FullStack App ( Spring + Angular ) : ImperBlog 📑

1) ENGLISH

Application for creating blog posts, developed with Java using Spring Framework for backend and Angular along with PrimeNG Library for frontend development.

1) PORTUGUESE

Aplicação para a criação de postagens ao estilo BLOG, desenvolvida com Java utilizando o Spring Framework para o backend e o Angular juntamente com a Biblioteca PrimeNG para o desenvolvimento frontend.

2) ENGLISH

The App has the following features:
  1. Creating a user account
  2. Login access validation using Spring Security
  3. Creating multiple posts per user
  4. Listagem de todas as postagens na página inicial
  5. Listing of all posts on the homepage
  6. view a post
  7. Edit a logged-in user's post
  8. Delete a post from the logged in user
  9. View the graph of users by gender (M & F)
  10. Responsive design suitable for most devices
  11. Logout
  12. JWT Token Usage
  13. Update token automatically
  14. Frontend URL protection
  15. Redirection to login when token expires
  16. Backend unit tests in Controllers, Services and Repositories classes
  17. And additional features or functionality in both Backend and Frontend for better user usability

2) PORTUGUESE

O App conta com as seguintes funcionalidades:

  1. Criação de uma conta de utilizador
  2. Validação de acesso com login utilizando Spring Security
  3. Criação de várias postagens por utilizador
  4. Listagem de todas as postagens na página inicial
  5. Listagem de todas as postagens de um utilizador no seu perfil
  6. Visualizar uma postagem
  7. Editar uma postagem do utilizador logado
  8. Deletar uma postagem do utilizador logado
  9. Visualizar o gráfico de utilizadores por gênero ( M & F )
  10. Design Responsivo adequado para a maioria dos dispositivos
  11. Logout
  12. Utilização do Token JWT
  13. Refresh Token automático
  14. Proteção de URL's no frontend
  15. Redirecionamento para o login quando o token expira
  16. Testes unitários no Backend nas classes dos Controllers, Services e Repositories
  17. E recursos ou funcionalidades adicionais tanto no Backend como no Frontend para melhor usabilidade do usuário

EN: The final system is available for testing at: https://imperblog.vercel.app/

PT: O sistema final encontra-se disponível para teste em : https://imperblog.vercel.app/

🔑 EN: Requirements to run on Localhost

🔑 PT: Requisitos para executar em Localhost

  1. Java Jdk ( 8/11 )
  2. Spring Tools Suit | Eclipse IDE | IntelliJ IDEA | NetBeans : Backend
  3. VScode: Frontend
  4. PostMan
  5. Node Js & npm
  6. TypeScript
  7. Angular CLI
  8. PgAdmin 4 & PostgreSQL
  9. Maven

⁉️ EN: Note ( Database creation )

  1. It is important that you first create the database with the name imperblog_bd before running the backend if you have PgAdmin 4 & PostgreSQL installed on your machine as shown in the following image:

⁉️ PT: Observação ( Criação do banco de dados )

  1. É importante que primeiramente crie o banco de dados com o nome imperblog_bd antes de executar o backend caso tenha o PgAdmin 4 & PostgreSQL instalados na sua máquina como mostra a imagem a seguir:

EN

  1. When starting the backend application, the database will automatically be loaded with the respective tables defined in imperblog-backend/src/main/db/migration
  2. If you want to change the name of the database, create one of your choice and remember to change it in the properties file application.properties located in the directory imperblog-backend/src/main/resources on line 1 spring.datasource.url=jdbc:postgresql://127.0.0.1:5432/your-database-name

PT

  1. Ao iniciar a aplicação backend , automaticamente o banco de dados será carregado com as respetivas tabelas definidas em imperblog-backend/src/main/db/migration
  2. Caso deseje alterar a nome do banco de dados, crie um a sua escolha e lembre-se de alterá-lo no ficheiro de propriedades application.properties que encontra-se no diretório imperblog-backend/src/main/resources na linha nº 1 spring.datasource.url=jdbc:postgresql://127.0.0.1:5432/nome-do-seu-banco-de-dados

💻 EN: Installation 🖱️

To perform the installation, you must have a good internet connection and follow the steps below 🔽

  1. Downloading files from GitHub : In Code use the Download ZIP option to download the entire repository.
  2. Unzip the downloaded file.
  3. Open the imperblog-backend directory in your preferred backend IDE and wait for Maven to import/download the dependencies.
  4. Run the project imperblog-backend so that it is available at localhost:8080 .
  5. Open the directory imperblog-frontend in your preferred frontend IDE, and at the root of the directory, open the command line and run the command npm install to install the Angular framework dependencies and PrimeNG.
  6. Run, typing in GitBash the command ng serve -o in the root of the imperblog-frontend project, so that the application starts and the browser automatically opens or type ng serve and access the url o address: http://localhost:4200.
  7. If everything is perfectly installed, accessing the url http://localhost:4200 will have access to the Login as shown in the following image:

PT: Instalação 🖱️

Para realizar a instalação, é necessário possuir uma boa conexão com a internet e seguir os passos a baixo 🔽

  1. Baixando os arquivos do GitHub : Em Code use a opção Download ZIP para baixar todo o repositório.
  2. Descompactar o arquivo baixado.
  3. Abrir o diretório imperblog-backend em sua IDE backend preferida e esperar que o Maven faça o import/download das dependências.
  4. Executar o projecto imperblog-backend para que o mesmo fique disponível em localhost:8080 .
  5. Abrir o diretório imperblog-frontend em sua IDE frontend preferida , e na raiz do diretório, abra a linha de comando e execute o comandonpm install para que se faça a instalação das dependências do framework Angular e PrimeNG .
  6. Execute, digitando no GitBash o comando ng serve -o na raiz do projeto imperblog-frontend , para que a aplicação inicie e o browser abra automaticamente ou digite ng serve e aceda na url o endereço: http://localhost:4200.
  7. Caso tudo esteja perfeitamente instalado ao aceder a url http://localhost:4200 terá acesso ao Login como mostra a imagem a seguir:

💻 EN: Unitary tests 📊

Unit tests are in the directory: imperblog-backend/src/test/java

To run all tests in simultaneous do as shown in the following image 🔽

💻 PT: Testes Unitários 📊

Os testes unitários encontram-se no diretório: imperblog-backend/src/test/java

Para executar todos os testes em simultâneo faça como mostra a imagem a seguir 🔽

EN: And as a result we will have all the tests executed 🔽

PT: E como resultado teremos todos os testes executados 🔽

EN: To run the tests of a specific class, in which we will use the PostServiceTest class as an example, do as shown in the following image 🔽

PT: Para executar os testes de uma classe específica, em que utilizaremos a classe PostServiceTest como exemplo faça como mostra a imagem a seguir 🔽

EN: And as a result we will have only the tests of the PostServiceTest class executed 🔽

PT: E como resultado teremos somentes os testes da classe PostServiceTest executados 🔽

💻 Postman Collection 📡

/postman_collection

EN: I'll be adding new features as time goes on, I hope you like it ❤️

PT: Vou adicionando novas funcionalidades consoante o tempo, espero que tenham gostado ❤️

SEJA LUZ 💡 BE LIGHT 💡

You might also like...

Nrich is a Java library developed at CROZ whose purpose is to make development of applications on JVM a little easier.

nrich Nrich is a Java library developed at CROZ whose purpose is to make development of applications on JVM a little easier. It contains modules that

Nov 12, 2022

Download or repost public instagram posts easily by selecting "Copy Link" in Instagram.

Download or repost public instagram posts easily by selecting

Insta Save and Repost Description Download or repost public instagram posts easily by selecting "Copy Link" in Instagram. Screenshots Features Downloa

Jan 21, 2022

🖥 CRUD Angular + Spring demonstrating Has-Many relationship, including tests for the back-end and front-end

REST API with Spring Boot and Angular CRUD Angular + Spring demonstrating Has-Many relationship, with tests. 💻 Tecnologies Java 17 Spring Boot 3 JPA

Dec 28, 2022

A platform that links service providers with clients using Angular & Springboot

A platform that links service providers with clients using Angular & Springboot

Bricoly : Engineer Your Life The Way It Should Be... 📘 Description This project's aims to connect people who are able to grant services with clients

May 28, 2022

An example on how to build a configurable widget to trigger external searches along with Liferay search to Elasticsearch.

An example on how to build a configurable widget to trigger external searches along with Liferay search to Elasticsearch.

Liferay External Searches An example on how to build a configurable widget to trigger external searches along with Liferay search to Elasticsearch. Ge

Oct 25, 2021

A plugin that adds Qualities to Items, along with the ability for the user to create their own.

A plugin that adds Qualities to Items, along with the ability for the user to create their own.

ItemQualities ItemQualities is a Minecraft Plugin for 1.18+ Servers that adds a special functionality to Damagable items. Inspired by the Quality Tool

Jul 1, 2022

This is the RestFul API using SpringBoot made to integrate the frontend of this repository.

This is the RestFul API using SpringBoot made to integrate the frontend of this repository. Requirements For building and running the application you

Jan 21, 2022

A simple blog post api made with spring,mysql.Following tutorial by @FadatareRamesh(Java Guides)

blogAPI A simple blog post api made with spring,mysql.Following tutorial by @FadatareRamesh(Java Guides) Frontend server(made using Angular) can be fo

Feb 2, 2022

Spring for GraphQL demo project with a Vue frontend.

Spring Books - Hello GraphQL This is a demo project that will introduce you to [https://spring.io/projects/spring-graphql](Spring for GraphQL). The Sp

Dec 2, 2022
Owner
Áureo Carmelino
Áureo Carmelino
Angular Final Assignment - Keep Note frontend

Angular Final Assignment - Keep Note frontend Objective The Objective of this level of Keep is to cover the following areas : Components Design Compon

Baskaran Murugesan 1 Jan 29, 2022
There are two challenges one is to create a backend api the other is to create a frontend application to consume the public data api devall.

Sobre | Desafio | Resolução | Tecnologias | Execução | Itexto desafio tecnico Sobre os Desafios existem dois desafios um é criar uma api backend o out

fabricio S Miranda 1 Oct 18, 2021
Manages server status and gives log of status information. front end - angular js, backend- sbring boot, DB-MySQL

ServerManagerApplication / | | / | | ( ___ _ __ __ __ ___ _ __ | \ / | __ _ _ __ __ _ __ _ ___ _ __ __ \ / _ \ | '| \ \ / / / _ \ | '| | |/| | / | | '

null 1 Jan 6, 2022
Spring MVC backend written in Java for my wiki/blog

blog-api Spring MVC backend written in Java for my wiki/blog. Why Spring? Spring MVC and other parts of the Spring framework are still immensely popul

null 0 Mar 16, 2022
Frontend : React , Backend : Spring boot

React(Front) + Spring Boot(Back) 작업 하기 앞서, React와 Spring Boot는 각각 다른 서버에서 돌아가기 때문에, 연동시 Front에 문제가 생기면 Back까지 문제가 생길 수 있다. 하지만, Spring Boot에서 React와 같

심재철 2 Jan 9, 2022
A developer oriented, headless ecommerce framework based on Spring + GraphQL + Angular.

GeekStore A developer oriented, headless ecommerce framework based on Spring + GraphQL + Angular. Headless means GeekStore only focus on the backend,

波波微课 13 Jul 27, 2022
This project contains a full example of an application developed using Spring Boot and GraphQL within the Java.

Spring boot GraphQL Example This project contains a full example of an application developed using GraphQL within the Java. The project includes a com

Haoqiao Wang 3 Jul 20, 2022
This project was developed with the intention of improving my knowledge of Java in application development in Android Studio.

This project was developed with the intention of improving my knowledge of Java in application development in Android Studio.

Henrique Marinho Teixeira 2 Jan 26, 2022
We have created a techblog website where a user can post technical posts and edit and update the post accordingly.

TechBlog Introduction - In this project we have created a technical blog website where we have provided functionalities such as 1) SignUp 2) Login 3)

Riya Vijay Vishwakarma 2 Jan 23, 2022
Projeto criado no Santander Dev Week 2022 + DIO com o intuito de desenvolver uma camada de APIs (backend) que será utilizada pelo frontend.

Santader Dev Week + DIO 2022 - APIs Backend da aplicação de movimentação financeira Este repositório contém o backend da aplicação que foi desenvolvid

Pedro Antunes Negrão 2 Sep 7, 2022