This project aims to help me learn the basics of full stack and web app development by creating a plain and basic professional networking app like linkedIn. Briefly, the app follows REST architecture with Java JPA entities on the backend and angular6 on the forntend.
Collaborator: https://github.com/pankan3
I must say that managing to set up the whole project can be tedious due to the number of dependencies being used for the backend (which was writtend in eclipse). A .war
file is also included in /build
However, the general steps are.
Backend:
- Create the database using the
createLinkedInDB.sql
script - Set up the backend project installing the dependencies (Written at the boottom of the README)
- Run the server through
Tomcatv8.5
Frontend:
- Install a
CORS
addon on your browser and enable it (Care to have it disabled when you are not using this locally installed webApp) - Use the angular6 deployment directory
build/linkedInFront
to run the frontend or run it withng serve
insource/Front_src directory
However, the app will face errors since it will not be able to find the fileSystem directory used for saving uploaded files like pictures.
- LogIn / Register
- Article reading, commenting, liking and writing
- Apply to a job advertisement or post one
- Friend request/accept system
- Messaging between friends
- Notifications of likes, comments, friend requests
- Public/ Private profile editing
The order in which the articles are shown is based on a KNN which finds the k writers that act like you (comment and like the sam articles).
The order in which the ads are shown depends on the number of common skills between yours (written in the profile) and the skills requested by the ad. Care: The correct format of writing skills is skill1, skill2, skill3
.
- Fix the CORS filter in order to avoid using the browser addon
- Set up an SSL encryption on the requests
In this project not a lot of effort was put into making the app aesthetically pleasing. The graphics and layout are simple, no responsiveness implemented and the user has no major help on how to navigate through the app.
These are the steps that I followed in order to create and implement this project
- Create UML use case and class diagrams
- Create the EER diagram (
databaseModelVer2.mwb
) and the mySQL database (createLinkedInDB.sql
)based on the class diagram - Setting up the backend server project in eclipse, create the JPA entities, implement the services needed and check them through Postman
- Create some low fidelity wireframes (They were not all of them 100% followed when implementing them)
- Setting up the frontend with angular6 and implemented it
- Server: Tomcat v8.5
- JRE: JDK1.8
- JPA: eclipseLink.2.5.2
- commons-io-2.6.jar
- jackson-core-2.9.0.jar
- jackson-databind-2.9.0.jar
- jjwt-0.9.1.jar
- jackson-jaxrs-json-provider-2.9.0.jar
- jackson-jaxrs-base-2.9.0.jar
- jackson-jaxrs-xml-provider-2.9.0.jar
- jaxb-core-2.3.0.jar
- mimepull-1.9.3.jar
- jersey-media-multipart-2.17.jar
- JAX-RS-Jersey-API (βιβλιοθήκη)
- Node.js with NPM
- bootstrap4
- file-saver