Skip to content

A comprehensive guide to mastering backend development with Golang, focusing on the GIN framework and MongoDB. This repository provides a curated learning path with practical examples, best practices, and project-based tutorials to help you build robust backend systems.

Notifications You must be signed in to change notification settings

nahomderese/Learning_Go

Repository files navigation

A2SV 2024 G5 Backend Learning Path

Task 1: Student Grade Calculator

Create a Go console application that allows students to calculate their average grade based on different subjects. The application should prompt the student to enter their name and the number of subjects they have taken. For each subject, the student should enter the subject name and the grade obtained (numeric value). After entering all subjects and grades, the application should display the student's name, individual subject grades, and the calculated average grade.

Requirements:

  • Use variables and data types to store student data.
  • Use conditional statements to validate input (e.g., ensure grade values are within a valid range).
  • Implement loops to handle multiple subjects and grades.
  • Utilize collections (e.g., List, Dictionary) to store subject names and corresponding grades.
  • Define a method to calculate the average grade based on the entered grades.
  • Use string interpolation to display the results in a user-friendly format.
  • Write test for your code [Optional]

Task 2: Fundamentals of Go

Sub Task 1: Word Frequency Count

  • Write a Go function that takes a string as input and returns a dictionary containing the frequency of each word in the string. Treat words in a case-insensitive manner and ignore punctuation marks.
  • Write test for your function

Sub Task 2: Word Frequency Count

  • Write a Go function that takes a string as input and checks whether it is a palindrome or not. A palindrome is a word, phrase, number, or other sequence of characters that reads the same forward and backward (ignoring spaces, punctuation, and capitalization).
  • Write test for your function

Task 3

Objective

Create a simple console-based library management system in Go to demonstrate the use of structs, interfaces, and other Go functionalities such as methods, slices, and maps.

Evaluation Criteria

  • Functionality: Verify that all required functionalities (adding, removing, borrowing, returning books, and listing books) are correctly implemented and working as expected.
  • Correct Implementation: Ensure that the structs, interfaces, and methods are correctly defined and implemented according to the requirements.
  • Error Handling: Ensure that appropriate error handling is implemented, particularly for scenarios where books or members are not found, or books are already borrowed.
  • Code Structure: Verify that the code follows the provided folder structure and is organized in a clear and maintainable manner.
  • Documentation

Task 4

Objective

The objective of this task is to create a simple Task Management REST API using Go programming language and Gin Framework. This API will support basic CRUD operations for managing tasks.

Instruction

  1. Use Go programming language and Gin Framework to develop the API.
  2. Implement the specified endpoints adhering to the defined requirements.
  3. Utilize an in-memory database to store task data.
  4. Test the API endpoints using appropriate tools (e.g., Postman, curl).
  5. Write clean, well-structured, and maintainable code with proper comments.
  6. Ensure the code is properly formatted and follows best practices for Go development.
  7. Document the API endpoints with details on request and response formats.
  8. Submit your code along with any necessary instructions for running and testing the API

Evaluation Criteria

  • Implementation of all required endpoints according to specifications.
  • Correct handling of various HTTP methods and response codes.
  • Proper error handling and validation of input data.
  • Efficient and well-structured code following Go best practices.
  • Clear and comprehensive documentation of API endpoints.
  • Compliance with the provided instructions and requirements.

About

A comprehensive guide to mastering backend development with Golang, focusing on the GIN framework and MongoDB. This repository provides a curated learning path with practical examples, best practices, and project-based tutorials to help you build robust backend systems.

Topics

Resources

Stars

Watchers

Forks

Languages