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 #, log in, connect with others, share posts, and much more.
- User authentication (#, 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 | # | # |
---|---|---|
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.sql
file located in theresources
folder to your MySQL server. This file includes all necessary scripts for setting up tables, triggers, procedures, indexes, and feed data. Update theapp.properties
file with your database configuration. -
Run the application:
Open the project in your preferred IDE. Build and run the project.
- Edit the
app.properties
file located in theresources
folder 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.LinkedON
api/users
api/users/:user-id?detail=full
api/users/:user-id?detail=brief
api/users?searchQuery=:searchQuery
api/users?checkEmail?email=:email
api/users/#?email=:email&password=:password
api/users/:user-id/feed
api/users/:user-id/contactInfo
api/users/:user-id/educations
api/educations
api/educations/:education-id
api/users/:user-id/skills
api/follows/:user-id/followers
api/follows/:user-id/followings
api/follow/:followed-user-id/followers/:following-user-id
api/connects/:user-id
api/connects/:user-id/:user-id
api.connects/:user-id/requests
api/connects/:user-id/request/:user-id
api/connects/:user-id/accept/:user-id
api/posts/:post-id
api/posts/:post-id/likes
api/posts/:post-id/likes/:user-id
api/messages/:user-id/:user-id
api/messages/:sender-id/:receiver-id
api/media/users/:user-id/:media-name/:media-extension
api/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.