Advanced Programming project of @aut-ce
LinkedOn is a JavaFX-based desktop application that mimics the functionality of LinkedIn. It features a beautiful user interface with both light and dark themes. Users can sign up, log in, connect with others, share posts, and much more.
- User authentication (sign up, log in)
- Messaging system
- Connect and follow users
- Share and like posts
- Edit profile and contact information
- Add education and skills
- Search for users
- Secure password hashing and unique ID generation
- Light and dark themes
- Optimized database queries and using indexes for better performance
| viewing your own profile | viewing other's profiles |
|---|---|
![]() |
![]() |
| landing page | sign up | sign in |
|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
| editting profile | adding educations and skills |
|---|---|
![]() |
![]() |
![]() |
![]() |
| home page | followers and connections |
|---|---|
![]() |
![]() |
![]() |
![]() |
| invitations | searching users |
|---|---|
![]() |
![]() |
| messaging | educations and skills |
|---|---|
![]() |
![]() |
- Java
- JavaFX
- MySQL
- JWT (JSON Web Tokens)
- JSON
- HTTP Server
- MVC Design Pattern
- Singleton and DAO Design Patterns
- BCrypt for password hashing
- UUID for unique ID generation
-
Clone the repository:
git clone https://github.com/AminRezaeeyan/LinkedOn.git cd LinkedOn -
Set up the database:
Import the
databaseSetUp.sqlfile located in theresourcesfolder to your MySQL server. This file includes all necessary scripts for setting up tables, triggers, procedures, indexes, and feed data. Update theapp.propertiesfile with your database configuration. -
Run the application:
Open the project in your preferred IDE. Build and run the project.
- Edit the
app.propertiesfile located in theresourcesfolder of server side to change the configuration.
# <<<------<< App Information >>------>>>
app.name=LinkedOn
app.author=Amin Rezaeeyan
app.version=1.0.0
# <<<------<< Database Configuration >>------>>>
db.url=jdbc:mysql://localhost:3306/LinkedOn_DB
db.username=LinkedOn
db.password=LinkedOnApp2024
db.driver=com.mysql.cj.jdbc.Driver
# <<<------<< JWT Configuration >>------>>>
jwt.secret=S3cReT#!KeY$&Of*)OuR^(PrOjEcT%~
jwt.issuer=org.LinkedONapi/usersapi/users/:user-id?detail=fullapi/users/:user-id?detail=briefapi/users?searchQuery=:searchQueryapi/users?checkEmail?email=:emailapi/users/login?email=:email&password=:password
api/users/:user-id/feed
api/users/:user-id/contactInfo
api/users/:user-id/educationsapi/educationsapi/educations/:education-id
api/users/:user-id/skills
api/follows/:user-id/followersapi/follows/:user-id/followingsapi/follow/:followed-user-id/followers/:following-user-id
api/connects/:user-idapi/connects/:user-id/:user-idapi.connects/:user-id/requestsapi/connects/:user-id/request/:user-idapi/connects/:user-id/accept/:user-id
api/posts/:post-idapi/posts/:post-id/likesapi/posts/:post-id/likes/:user-id
api/messages/:user-id/:user-idapi/messages/:sender-id/:receiver-id
api/media/users/:user-id/:media-name/:media-extensionapi/media/posts/:post-id/:media-name/:media-extension
Contributions are welcome! Please fork the repository and submit a pull request.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.



















