Git Product home page Git Product logo

socialapp's Introduction

SocialApp

Social network made with Angular, Spring Boot (Java), Keycloak and MySQL.

This application allows:

  • Create an account
  • Modify your profile picture and other data
  • Create posts
  • Receive notifications
  • Choose between three different languages (English, Spanish and Portuguese)
  • Send friend requests, as well as accept or reject those that are sent to you
  • View and interact with the posts created by your friends (like, comment, download their image, etc.)
  • Chat or start a video call with a friend
  • Follow verified accounts
  • View and interact with the posts created by the users you follow
  • Appear in trends (only for verified accounts)
  • And more

Note: this is a personal practice project and I do not allow its distribution.

API Docs

To view the API documentation you must first deploy the application and then enter one of the following paths in your browser:

Deployment

Important note: At the moment the app starts in developer mode and is not adapted for production.

The application can be deployed using a single command thanks to Docker.
First of all, download Docker Desktop if you don't have it installed locally.

Then you have to clone this repository:
git clone https://github.com/MatiasGBT/SocialApp.git
or download it as a ZIP file.

After that, you will be able to deploy this app running the following command in the repository folder:
docker compose up
You will need to have Docker Desktop open and running when you execute this command (and any other Docker command).

The first time you run the application it will be slow because Docker needs to download and build the images specified in the docker-compose.yml file.
You will be able to know when the project is ready when all the containers compile correctly. You will see the next lines in log of each container:

backend:

SocialAppApiApplication: Started SocialAppApiApplication in 42.05 seconds (JVM running for 69.204)

frontend:

โœ” Compiled successfully.

mysql:

/usr/sbin/mysqld: ready for connections. Version: '8.0.30' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server - GPL.

keycloak:

Running the server in development mode. DO NOT use this configuration in production.

Note: You can see the log of each container clicking on their names on Docker Desktop.

Note 2: To deploy the application you need the following ports to be free on your PC: 3036, 4200, 8080 and 8090.

When all the containers are built, you will be able to open the application by putting http://localhost:4200 in your browser.

Getting started

Login page After opening the app (see Deployment) click on New user? Register to create an account (or sign in with Google).
You will be redirected to a registration page. Use false information (just to test):

  • First name: user
  • Last name: test
  • Email: [email protected]
  • Username: user
  • Password: user123
  • Confirm password: user123

After registering you will be able to use and explore the app.

Screenshots

Some screenshots of the application. Index Page Index page

Profile Page Profile page

Friend's Profile Page Friend's profile page

Edit Profile Page Edit profile page

Chat Page Chat page

Is Calling You Modal that pops up when a friend calls you

Call Page Call page

Notifications Page Notifications page

Settings Page Settings page

Tech Stack

Client: Angular

Server: Java, Spring Boot

Authorization server: Keycloak

Database: MySQL

External utilities

Utilities provided by other developers/designers used in this project:

Author

@MatiasGBT

socialapp's People

Contributors

matiasgbt avatar

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.