Update Galaxy team:
- Muhammad Karbalaee Shabani
- Reyhaneh Saffar
- Hasan Roknabady
Computer Science students at Shahid Beheshti University
Mathematical sciences' faculty
This project is developed as the final project for our advanced Java programming course at SBU.
Our application is meant to be a template of Instagram desktop application.
-
Graphical User Interface
contains an impressive GUI, designed and implemented by JavaFX technology- login and sign up
- main feed
- add post
-
Object-orientation
this project is implemented in an absolutely object-oriented approach. since we used Java for this project, we tried to use the full power of Java in terms of object orientation. the project is very well organized and maintainable because every part of the program is developed within a separate package obviously-named. Each package consists of classes and fxml files of its own. we tried to obey the SOLID rules as much as we could in this project.
- Version Control tools
Our team work was organized and merged and developed upon Git and we made separate branches for different kind of tasks and after implementing an specific part of the project the team members would push the changes and notifying the maintainer of the project to merge their changes after checking their provided code.
- Team work
The entire project was developed under four main phases
- 1st phase: designing and building an API
- 2nd phase: implementing follow,profile,login,sign up features
- 3rd phase: implementing direct,post,comment,like features
- 4th phase: adding additional features and testing and debugging the whole project
Each phase very well organized and divided into separate tasks assigned to a developer and having a due date
Task Boards
Git graph
Contributions
- Database
For this project Mysql database is used for storing data on server.
Here is the schema:
- Socket Programming
This project consists of two different applications, a client app and a server app developed by the socket programming tools and concpets in Java
- Multi-threading
To handle numerous clients simultaneously on server-side multi-threading concepts are used. clients are handled by being passed to a threadpool and shared methods between multiple threads are synchronized to avoid the race condition and data loss
- Documentation
All classes and methods and packages are documented using Javadoc and used by team members during the development process
Link to documentations
I myself thank my teammates,Reyhaneh Saffar and Hasan Roknabady ,for this great cooperation and their contributions, also the high-quality codes
that they provided and further developed the project.
I also should thank my mentors, Ali Aliabadi
and Saeid Cheshmi, for helping me during the Advanced Programming course at SBU.
Finally I thank Prof. Kheradpisheh, the master of this course, for the great and high-quality course that they provided us with.