Giter VIP home page Giter VIP logo

instagram-desktop-application's Introduction

Instagram desktop app

Developers

Update Galaxy team:

Summary

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.

Features

  • Graphical User Interface

    contains an impressive GUI, designed and implemented by JavaFX technology

    • login and sign up

    • main feed

    • add post

    • user search

    • profile

    • followers and followings list

    • direct messaging

    • post

    • likes list

    • setting profile picture

    • setting bio

  • 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

Acknowledgements

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.

instagram-desktop-application's People

Contributors

mohammadkarbalaee avatar

Stargazers

Mohamadreza Khanmohamadi avatar Hasan Roknabady avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.