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.
To view the API documentation you must first deploy the application and then enter one of the following paths in your browser:
- http://localhost:8090/api-docs (To view the docs in JSON format)
- http://localhost:8090/swagger-ui.html (To view the docs with a graphical interface)
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:
SocialAppApiApplication: Started SocialAppApiApplication in 42.05 seconds (JVM running for 69.204)
โ Compiled successfully.
/usr/sbin/mysqld: ready for connections. Version: '8.0.30' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server - GPL.
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.
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.
Some screenshots of the application. Index page
Modal that pops up when a friend calls you
Client: Angular
Server: Java, Spring Boot
Authorization server: Keycloak
Database: MySQL
Utilities provided by other developers/designers used in this project: