I developed a ticket booking CLI application using Go. This project allowed me to gain hands-on experience with various concepts and technologies. I demonstrated my proficiency in the following areas:
1. Go Programming: I successfully developed the application using the Go programming language. I utilized Go's powerful features such as goroutines for concurrent execution, channels for communication, and built-in concurrency patterns.
2. User Input Validation: I implemented input validation to ensure the correctness and integrity of user-provided data. This involved validating name length, email format, and ticket numbers to prevent invalid bookings.
3. Concurrency with Goroutines and WaitGroup: To optimize performance and provide a seamless user experience, I utilized Goroutines to handle email sending in the background while the main program continued execution. I effectively synchronized goroutines using the sync.WaitGroup to ensure proper completion.
4. Data Management: I managed user bookings using slices and data structures in Go. I stored user data, including their first name, last name, email, and number of tickets, and maintained a list of all bookings made.
5. Command-Line Interface: The application utilized a command-line interface for user interaction, allowing users to input their details and book tickets conveniently.
By working on this project, I strengthened my problem-solving skills, learned to effectively use Go's concurrency features, and developed a practical application for managing bookings. This experience enhanced my understanding of software development principles and demonstrated my ability to build robust and efficient solutions using Go.