🧭 Topic: Final Project

Quick Overview :

This topic presents the final project for the Advanced Programming course: building a desktop social media application inspired by X (formerly Twitter) using Java, JavaFX/Swing, and PostgreSQL/MySQL. Students work in teams to develop a complete client-server application with real-time features.


Final Project Specification

- [Download PDF - Project Specification](https://drive.usercontent.google.com/u/0/uc?id=1qo1IG_4Yb2uJ8BRU-w6hmvt-Hse9z_KP&export=download)

📌 Covered in This Topic

Project Overview

  • Build a desktop social media application inspired by X (formerly Twitter)
  • Tech Stack: Java, JavaFX/Swing for GUI, PostgreSQL/MySQL for database
  • Architecture: Client-server with JSON-based communication protocol
  • Goal: Create a functional social networking platform with tweets, follows, likes, replies, and personalized feeds

Educational Objectives

  • Developing client-server applications using Java sockets
  • Applying object-oriented design principles
  • Designing and implementing PostgreSQL/MySQL databases
  • Using JDBC/ORM with parameterized queries
  • Building graphical user interfaces with JavaFX/Swing
  • Creating JSON-based communication protocols
  • Implementing multithreading for concurrent client support
  • Using Git and collaborative software development practices
  • Producing technical documentation (ERD, architecture diagrams)

Main Tasks (Mandatory Features)

3.1 Client-Server Architecture

  • Central server manages all users, tweets, media, and relationships
  • Multiple clients connect simultaneously
  • All persistent data stored centrally in PostgreSQL/MySQL
  • JSON-based protocol for client-server communication
  • Server supports concurrent connections using multithreading
  • Real-time tweet delivery to connected users
  • Real-time updates for likes, follows, notifications are bonus features

3.2 User Management

  • User Registration (unique username, email, password)
  • User Login / Logout with session management
  • Password Security (hashing, validation)
  • Profile Creation & Editing (display name, bio, profile picture)
  • Avatar Upload & Display
  • Profile Viewing (personal and other users)

3.3 Tweets

  • Create Tweets (deliver to followers)
  • View Tweets (content, author, timestamp, media)
  • Delete Tweets (user’s own tweets)
  • Timestamp Tracking
  • Tweet Details & Replies
  • User Tweet History

3.4 Tweet Interactions

  • Replies (respond to tweets)
  • Threaded Conversations (organized reply chains)
  • Retweets/Reposts (share existing tweets)

3.5 Hashtags

  • Automatic Detection within tweet text
  • Hashtag Search

3.6 Media

  • Image Attachments to tweets
  • Multiple Images per tweet
  • Image Previews in timeline

3.7 Profile Enhancements

  • Banner Images for profile headers
  • Profile Statistics (tweet, follower, following counts)

3.8 Social Features

  • Follow / Unfollow Users
  • Followers List & Following List
  • Follower Count & Following Count

3.9 Likes

  • Like / Unlike Tweets
  • Like Counts on each tweet

3.10 Feed

  • Personalized Timeline (user’s tweets + followed users’ tweets, chronological)
  • Real-Time Tweet Delivery (no manual refresh required)
  • User Search (username or display name)
  • Profile Navigation from search results
  • Tweet Search (keywords)
  • Hashtag Search

Bonus Features

  • Direct Messaging (private communication)
  • Quote Tweets (repost with commentary)
  • Tweet Editing with Edit History
  • User Blocking / Muting
  • Verification Badge
  • Notifications (real-time, new followers, likes, tweets)
  • Suggested Users to Follow / Hashtags
  • Hashtag Following / Trending Hashtags
  • Poll Creation and Voting
  • Pinned Tweets / Scheduled Tweets
  • Video Attachments / GIF Support
  • Image Full-Size Viewing
  • Profile-Specific Search
  • Character Limit Enforcement (like Twitter/X)
  • Dark Mode / Theme Customization
  • Responsive UI
  • Creativity Bonus: Original, unexpected, or delightfully unique features

Documentation Requirements

README.md (User-Facing)

  • Project Title
  • Table of Contents
  • Descriptions (what the project does and why)
  • Usage (with code examples)
  • Demo/GIFs/Images
  • Credits (contributors, libraries, dependencies)
  • Changelog (version changes)
  • Contact Information

Report.md (Technical Documentation)

  • System Architecture: Client/server components, communication flow, modules, architectural patterns (with diagrams)
  • Database Design: ERD, major entities and relationships, SQL DDL scripts
  • Object-Oriented Design: Class diagrams (UML), key classes and responsibilities, inheritance/composition, design patterns used
  • AI Usage Disclosure: AI tools/models used, purpose, extent, examples, how generated content was reviewed/modified

Project Roadmap & Timeline

Phase 0 — Setup & Planning

  • GitHub repo, branching strategy, project board
  • Tech stack versions (Java, JavaFX, PostgreSQL, Gson, JDBC)
  • JSON communication protocol design
  • Database ERD + local PostgreSQL setup + DDL scripts
  • Skeleton server (socket listener + thread pool) and client
  • Deliverable: Server accepts connection, client sends “ping”, server responds; empty DB schema created

Phase 1 — Core Backend & Authentication

  • User Registration (unique username/email, hashed passwords)
  • User Login/Logout, session management
  • Password validation rules
  • Basic profile creation
  • Deliverable: Users can register, log in, log out; multiple clients connect simultaneously

Phase 2 — Tweets & Feed

  • Create/View/Delete Tweet, timestamp tracking
  • User Tweet History
  • Chronological feed (basic timeline)
  • Real-time tweet delivery to connected followers
  • Deliverable: Users can post tweets and see them in a feed

Phase 3 — Social Graph & Interactions

  • Follow/Unfollow, Followers/Following lists + counts
  • Personalized feed
  • Likes/Unlike, Replies (basic thread view), Retweets
  • Deliverable: Core social network + interactions fully working

Phase 4 — Final Features, Polish & Documentation

  • Hashtags (detection + search), Image attachments (basic support)
  • Search (users + tweets)
  • UI polish, bug fixing, multi-client testing
  • README, ERD, SQL scripts, Generative AI usage report
  • Deliverable: Fully working, documented, submission-ready project

Bonus (Time Permitting)

  • Dark mode, character limit, blocking/muting, pinned tweets, polls, GIF/video, real-time notifications

Key Notes:

  • Backend + frontend developed in parallel in every phase
  • Documentation updated continuously, not at the end

Useful Tools & Packages

  • UUID: Generate unique IDs for objects
  • Scene Builder: Visual layout tool for JavaFX FXML design
  • JavaFX: Modern GUI library with CSS styling
  • PostgreSQL: Open-source relational database
  • Gson: Java-to-JSON serialization/deserialization
  • BCrypt: Secure password hashing

Evaluation Criteria

Functionality (All Required Features)

  • All required features fully implemented
  • Application runs without crashes
  • Core logic for user management, tweeting, social features, proper data storage

Code Quality & OOP

  • Proper application of OOP principles (encapsulation, inheritance, polymorphism, abstraction)
  • Clean, maintainable, readable code
  • Consistent Java naming conventions
  • Comments for complex logic

JavaFX GUI

  • User-friendly and intuitive interface
  • Responsive UI interactions
  • Proper layout and clear information display

Database Design & Integration

  • Efficient and logical database schema
  • Secure and correct JDBC usage
  • Proper data handling between app and database

Version Control & README

  • Consistent Git usage with meaningful commits
  • Clean branching strategy
  • Complete README.md

Bonus Features

  • Additional features beyond requirements
  • Evaluated on complexity, implementation quality, and practical value

Submission Requirements

  1. GitHub Repository: Complete source code, commit history showing contributions, final develop branch merged into main
  2. README Documentation: Project overview, setup instructions, feature descriptions, usage guide
  3. Project Report: System architecture, database design (ERD + DDL), UML diagrams, AI usage disclosure
  4. Note: Keep repository private; grant access to teammates and mentor only

🛠️ Final Project

📋 Project: Twitter/X Clone

  • No provided repository – teams create their own repositories
  • Team Size: Groups of 3 (as specified earlier in course)
  • Deadline: To be announced separately
  • Evaluation: Functionality (50%), Code Quality & OOP, JavaFX GUI, Database Design & Integration, Version Control & README, Bonus Features

🌐 Additional Resources


⏩ Navigation


Tip :

The final project is your opportunity to showcase everything you’ve learned! Start simple – get the client-server connection working first, then add features incrementally. Follow the suggested roadmap and develop backend and frontend in parallel. Documentation is not an afterthought – update README and report continuously. Use meaningful Git commits and a clean branching strategy. Remember, a correct, working core is worth more than broken bonus features. Good luck, and have fun building something awesome! 🚀