Skip to content

MahdiHaeri/AP_Project_Tutorial

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

23 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Advanced Programming Project – Course Topics

Slides:

Overview

  • Client-Server Application Structure
  • Project Scope & Requirements

Introduction to Network

  • IP, Port, Socket, and Socket Programming
  • HTTP Protocol & Methods (GET, POST, etc.)
  • Endpoints, APIs, and RESTful API Concepts
  • Data Formats: JSON, YAML, XML
  • API Testing Tools: Postman, Insomnia
  • JWT (JSON Web Token) for Authentication

Server

  • Architectures:
    • Monolithic
    • Layered(N-tier)
    • Microservices (optional)
  • Design Patterns:
    • MVC (Model-View-Controller)
    • Singleton (for JDBC connection)
    • DAO (Data Access Object – Optional but useful)
    • Factory (Optional)
    • Observer (Optional)
  • Implementing an HTTP Server in Java

Introduction to Database

  • Introduction to Databases
  • Setting Up Databases (PostgreSQL, MySQL):
    • Installation on Local Machine
    • Installation Using Docker (Optional)
  • Database Clients
  • Types of Databases
    • Relational Databases (RDBMS) – Store data in tables with rows and columns (e.g., PostgreSQL, MySQL, SQLite).
    • NoSQL Databases – Designed for non-tabular data storage, useful for scalability and flexibility (e.g., MongoDB, Redis).
  • SQL Basics: ER Model, Primary Keys, etc.
  • JDBC: Connecting Java Applications to a Database
  • ORM (Object-Relational Mapping) with Hibernate (Optional)

Build Systems

  • Introduction to Build Tools
  • Maven: Dependency Management & Build Automation
  • Gradle: Configuration & Performance Optimization

Client

  • Developing the Client-Side Application with JavaFX
  • Using Scene Builder for UI Design
  • Connecting JavaFX with the Server
  • Handling API Calls and Parsing Responses
  • Implementing User Interaction and Event Handling
  • Android Development (Optional): Using Kotlin and Jetpack Compose library

πŸ“Œ Notes

  • Topics marked as optional are not mandatory but recommended for deeper understanding.
  • The project is structured to cover full-stack development using Java.
  • Ensure to follow best practices and design patterns for maintainability and scalability.

Happy coding! πŸš€

About

Slides and resources for the Advanced Programming Project - Amirkabir University

Resources

Stars

Watchers

Forks