Giter Site home page Giter Site logo

dmcheremisin / springbootsocialnetwork Goto Github PK

View Code? Open in Web Editor NEW
50.0 7.0 26.0 2.62 MB

Social Network Spring Boot project

Home Page: https://springboot-social-network.herokuapp.com/

Java 56.76% CSS 1.58% JavaScript 6.80% HTML 34.74% Dockerfile 0.12%
spring-boot social-network java spring spring-security spring-data-jpa spring-mvc theamleaf javascript jquery

springbootsocialnetwork's Introduction

SpringBoot Social Network Project

  • Circle CI build status: CircleCI

Introduction

This project is a continuation of the previous one. The previous project was made with pure Servlets and JSP technologies details here. I used the same template layout and created a new project using SpringBoot.

Functionality

Base

  • Login / Logout
  • Register
  • View own profile
  • View other users profiles
  • Send messages
  • Add and remove friends
  • Accept and decline friends requests
  • Update profile information
  • Change password
  • Search for other users
  • View other users friends lists
  • View last messages
  • Drag and drop profile image upload
  • Internationalization: English and Russian languages
  • Localization

Admin

  • Make other user admin
  • Block user

Technologies used

Stack:

  • Java 11
  • Spring: SpringBoot, MVC, Data JPA, Security, DevTools, Actuator
  • Maven
  • H2, Mysql, ClearDb(Heroku)
  • Thymeleaf
  • Javascript, jQuery
  • Html, CSS, Bootstrap
  • Test: JUnit, Mockito

Environment

  • Heroku as CD tool
  • Circle CI as CI tool
  • Docker for containerization

Application demo is available on Heroku

Link: https://springboot-social-network.herokuapp.com/
Cersei is average user and Tyrion Lannister is super admin. Tyrion can't be blocked or made average admin user.

Credentials for Cersei Lannister:

Tyrion Lannister credentials:

Quick start

Required:

  • Java 11
  • Maven

Steps:

  1. git clone https://github.com/dmcheremisin/SpringBootSocialNetwork.git
  2. mvn clean package -DskipTests=true
  3. cd web.social.network/target
  4. java -jar -Dspring.profiles.active=dev social-network.jar
  5. Go to http://localhost:8080

Application profiles

  • dev - profile for development, uses embedded H2 database
  • qa - profile for qa testing, uses Mysql either local, or from docker container: mysql docker container
  • prod - profile for Heroku, uses ClearDb. ClearDb is Heroku analog of Mysql: details
  • docker - profile for Docker. It is created to test connection between 2 containers: mysql and social-network(spring boot app)

Docker

This application is tested in Docker.
I made 2 containers: mysql and social-network, and then linked them.
Commands for images creation and containers startup may be found in the directory: docker

Screenshots

1 2 3 4 5 6 7 8 9 10 11 12

Todo:

  • Improve test coverage. Yes, I know it is very important, but I don't have enough time.

springbootsocialnetwork's People

Contributors

dmcheremisin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

springbootsocialnetwork's Issues

Heroku build failure

   [INFO] BUILD FAILURE
   [INFO] ------------------------------------------------------------------------
   [INFO] Total time:  3.556 s
   [INFO] Finished at: 2020-01-05T10:12:09Z
   [INFO] ------------------------------------------------------------------------
   [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project data.social.network: Fatal error compiling: invalid target release: 11 -> [Help 1]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.