Realtime Chat Application Development
Realtime Chat Application Development
Objective:
Develop a web or Android application that enables real-time chat conversations between
multiple users. The project should include user registration, database management, and
an intuitive user interface. Additionally, the use of a version control system such as Git is
recommended.
Requirements:
1. Technology Stack:
o Choose a suitable programming language: Java or C#
o Select an appropriate IDE:
o Frameworks:
▪ Java: Spring Boot, Firebase for real-time database, WebSockets
▪ Android: Firebase Realtime Database or Firestore
2. Realtime Cloud Database and Management:
o Firebase Realtime Database, Firestore, AWS DynamoDB, Azure Cosmos DB
3. User Registration and Authentication:
o Users should be able to register, log in, and manage their profiles.
o User authentication mechanisms such as:
▪ Firebase Authentication, OAuth 2.0 (Google, Facebook, GitHub, etc.)
4. User Interface:
o Design an intuitive UI for chat functionalities.
o Use modern UI frameworks such as:
▪ Java: JavaFX, React.js (for web), Jetpack Compose (for Android)
▪ C#: Blazor, ASP.NET MVC, Xamarin (for Android)
5. Version Control System (Bonus Points):
o Utilize Git for version control.
o Host the repository on GitHub, GitLab, or Bitbucket.
o Maintain proper commit messages and branches.
Final Deliverables:
1. Live Presentation and Viva:
o Demonstration of the application in a live environment.
o Explanation of design decisions and technology choices.
2. Development Report (Structure to be announced later):
o Overview of the project.
o Technical architecture and implementation details.
o Challenges faced and solutions implemented.
o Future improvements and scalability considerations.
Learning Criteria
• Cloud Application Development: Understand how to deploy and manage cloud-
based applications.
• Database Management: Gain knowledge of SQL or NoSQL databases for efficient
data handling.
• Cloud User Management & SSO: Implement secure authentication mechanisms.
• Version Control Usage: Learn best practices for collaborating using Git or another
VCS.
Evaluation Criteria:
• Functionality and features implemented.
• Code quality and structure.
• Security considerations.
• UI/UX design.
• Use of real-time database.
• Version control practices (if used).
• Presentation and documentation quality.
Good luck with your development!