Generative Adversarial Networks (GANs) have revolutionized the field of machine learning and artificial intelligence by providing a powerful framework for generating realistic and high-quality synthetic data. GANs consist of two networks, a generator that produces synthetic data and a discriminator that distinguishes between the synthetic data and real data. The two networks are trained together in a game-theoretic setting, where the generator tries to produce synthetic data that is similar to the real data, while the discriminator tries to distinguish between the two. This paper provides a deep exposition of GAN and its applications, starting with the basics of GANs, their architecture, and how they work. We then discuss the training process of GAN, the challenges associated with it, and the techniques used to address these issues. We also describe the different variants of GANs, including conditional GAN, progressive GAN, and style-based GAN, and their applications. Next, we provide a comprehensive overview of the various domains where GANs have been successfully applied, such as image and video synthesis, text generation, and music composition. We discuss the potential future directions of GANs and their applications, including research areas that need further investigation. Finally, we highlight the challenges and limitations associated with GANs, such as mode collapse, vanishing gradients, and instability, and the ethical and legal issues associated with their applications. We conclude by summarizing the key points of the paper and highlighting the potential of GANs as a tool for generating realistic and high-quality synthetic data.