0% found this document useful (0 votes)
25 views6 pages

Course Syllabus

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
25 views6 pages

Course Syllabus

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

Week 1: Introduction to Go and Basic API Development

Day 1-2: Introduction to Go


Go installation and setup
Basic syntax and data types
Functions and error handling
Hands-on: Writing simple programs to get familiar with Go basics
Resources:
Tour of Go
Go by Example
Go Tutorial for Beginners - Net Ninja
Golang Tutorials for Beginners | Full Go Course - TechWorld With Nana
Learn Go Fast - For Experienced Devs
Day 3-4: Building Your First API
Setting up a Go project structure
Creating a simple REST API with Gorilla Mux
Hands-on: Building and testing simple endpoints
Resources:
Gorilla Mux Documentation
Building Go Web Applications and APIs - Old (6 years ago) but still good
reference
Complete JSON API project in Golang (JWT, Postgres, and Docker)
How To Build a Complete API In Golang (Docker, JWT, MySQL)
Creating a JSON CRUD API in Go (Gin/GORM) - Using Gin Web Framework
Day 5: Connecting to a Database
Introduction to PostgreSQL
Using gorm for database operations
Hands-on: Connecting the API to PostgreSQL, performing basic CRUD operations
Resources:
GORM Documentation
Complete JSON API project in Golang (JWT, Postgres, and Docker)
How To Build a Complete API In Golang (Docker, JWT, MySQL)

Week 2: Intermediate API Development


Day 1-2: Advanced API Development
Building more complex endpoints
Error handling and logging
Hands-on: Implementing advanced CRUD operations
Resources:
Effective Go
Day 3-4: Unit Testing and Integration Testing
Writing unit tests for Go code
Setting up and running integration tests
Hands-on: Implementing tests for the API
Resources:
Learn Go With Tests
Day 5: API Documentation
Using Swagger/OpenAPI for documenting the API
Hands-on: Generating and integrating API documentation
Resources:
Swagger for Go

Week 3: Real-time Communication and Concurrency


Day 1-2: WebSockets and Real-time Communication
Introduction to WebSockets
Implementing real-time updates with Gorilla WebSocket
Hands-on: Building a simple real-time chat application using WebSockets
Resources:
Gorilla WebSocket Documentation
WebSockets in Go
Day 3-4: Advanced Concurrency Patterns
Worker pools and task queues
Using context for cancellation and timeout
Hands-on: Implementing a worker pool for processing tasks concurrently
Resources:
Go Concurrency Patterns
Concurrency in Go - Old (6 years ago) but still good reference
Day 5: Microservice Communication
Introduction to gRPC
Implementing gRPC communication between microservices
Hands-on: Building a gRPC service and client
Resources:
gRPC in Go
Building gRPC services in Go
Complete Golang and gRPC Microservices (Project Course)

Week 4: Service Communication and Authentication


Day 1-2: Implementing Authentication and Authorization
JWT authentication
Role-based access control
Hands-on: Adding JWT authentication to the API
Resources:
JWT in Go
Securing Go APIs
Complete JSON API project in Golang (JWT, Postgres, and Docker)
Day 3-4: Message Queues
Introduction to message queues (e.g., Kafka, RabbitMQ)
Implementing a simple message queue
Hands-on: Integrating a message queue for asynchronous processing
Resources:
Intro to Kafka
How to start an Apache Kafka broker with Docker and Docker-Compose
Getting Started with RabbitMQ
Kafka Go Client
Day 5: Payment Gateway Integration
Implementing payment processing using a third-party payment gateway (e.g., Stripe)
Hands-on: Integrating the payment gateway into the API
Resources:
Stripe API Documentation
Go Stripe Library

Week 5: Real-time Features and Caching


Day 1-2: Real-time Notification Service
Sending real-time notifications (e.g., email, SMS)
Hands-on: Implementing a notification service
Resources:
Twilio API for SMS
SendGrid API for Email
Day 3-4: Caching with Redis
Introduction to Redis and caching concepts
Hands-on: Implementing Redis for caching frequently accessed data
Resources:
Redis Crash Course
Redis Go Client
Caching Strategies
Beginner's Guide to Redis with Go
Day 5: Dockerizing the Microservices
Writing Dockerfiles for each microservice
Hands-on: Containerizing the Go application
Resources:
Dockerizing Go Applications
Docker Documentation

Week 6: Capstone Project Preparation


Day 1-2: Designing the Capstone Project
Project requirements and specifications
Designing the architecture
Hands-on: Planning the capstone project
Day 3-4: Setting Up the Development Environment
Initial project setup
Assigning tasks and milestones
Hands-on: Setting up the repository and initial codebase
Day 5: Project Planning
Detailed project plan and timeline
Preparing for implementation
Hands-on: Finalizing the project plan

Weeks 7-8: Capstone Project - Payment Gateway/E-Wallet with


Bank Reconciliation
Week 7: Project Implementation
Developing the microservices for the payment gateway/e-wallet and bank
reconciliation
Implementing user authentication and account management
Building transaction processing, payment handling, and real-time notifications
Hands-on: Daily coding sprints to build and test features
Additional Tasks:
Dockerizing the microservices
Writing Dockerfiles for each microservice
Week 8: Finalization and Kubernetes Deployment via GitOps
Finalizing the project
Comprehensive testing and debugging
Hands-on: Preparing the application for Kubernetes deployment
Creating Kubernetes manifests for the microservices
Setting up ArgoCD for GitOps deployment
Tasks:
Deploying the application to a Kubernetes cluster using ArgoCD
Setting up Traefik as the ingress controller for routing and load balancing
Preparing and presenting the project

Capstone Project Details: Payment Gateway/E-Wallet with Bank


Reconciliation
Services:

1. User Service: Handles user registration, authentication (JWT), and profile management.
2. Account Service: Manages wallet accounts, including creating, updating, and retrieving
account details.
3. Transaction Service: Processes transactions, including deposits, withdrawals, transfers,
and payments.
4. Payment Gateway Service: Integrates with third-party payment gateways for payment
processing.
5. Bank Reconciliation Service: Reconciles transactions with bank records, ensuring
accuracy and consistency.
6. Notification Service: Sends real-time notifications for account activities and transactions.
7. Caching Service: Implements caching for frequently accessed data to improve
performance.

Features:

User Authentication: Secure user login and JWT-based authentication.


Account Management: CRUD operations for managing wallet accounts.
Transaction Processing: Real-time transaction handling with concurrency support.
Payment Integration: Handling payments using a third-party gateway.
Bank Reconciliation: Matching and verifying transaction records with bank statements.
Real-time Notifications: Sending notifications via WebSockets, email, or SMS.
Service Communication: Using REST and gRPC for inter-service communication.
Concurrency: Efficient handling of concurrent requests and transactions.
Caching: Implementing Redis for caching frequently accessed data.
Containerization: Dockerizing the microservices for easy deployment.
Kubernetes Deployment: Deploying the microservices to Kubernetes using ArgoCD for
GitOps.
Service Discovery and Load Balancing: Utilizing Kubernetes' built-in service discovery
and Traefik for ingress and load balancing.

You might also like