Skip to content

timur-harin/sum25-go-flutter-course

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

46 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Go+Flutter: Rapid Cross-Platform Development

Summer 2025 Elective Course - A comprehensive 8-blocks intensive course teaching modern full-stack development with Go backend and Flutter frontend, emphasizing real-world software engineering practices.


โœจ Course Highlights

  • ๐Ÿš€ Rapid Prototyping: Learn to quickly test hypotheses and build MVPs with modern tech stack
  • ๐Ÿงช Automated Testing: Every lab includes comprehensive testing with CI/CD pipelines
  • ๐Ÿ“น Complete Recordings: All lectures and labs recorded in dual format (screen + front camera)
  • ๐Ÿ‘ฅ Peer Review System: Real-world code review workflow with peer feedback
  • โšก Fast-Track Option: Pass the entire course by completing one comprehensive project

๐ŸŽฏ Course Overview

  • Backend (Go) โ€“ REST APIs, PostgreSQL, gRPC, micro-services
  • Frontend (Flutter) โ€“ cross-platform UI, Riverpod, gRPC/HTTP clients
  • DevOps โ€“ Docker, GitHub Actions, CI/CD
  • Software Engineering โ€“ Clean Architecture, TBD, code review, testing, documentation, teamwork

๐Ÿ“น Recordings

Format: Each lecture and lab is available in two formats:

  • Screen Recording: Slides, code demonstrations with AI-generated subtitles
  • Front Camera: Instructor view with classroom interaction and explanations

YouTube playlist of lectures and labs

VK Video playlist of lectures and labs


๐Ÿ“š 8-Block Structure

Block Topic Go Focus Flutter Focus Integration
1 Foundations syntax, structs widgets, layout โ€”
2 Concurrency & Streams goroutines, channels async/await, StreamBuilder real-time calls
3 Data & APIs HTTP server, middleware HTTP client, models REST
4 Database & Persistence PostgreSQL, GORM SQLite/local-store CRUD
5 Patterns & Testing clean architecture, mocks Riverpod, tests E2E
6 Auth & Security JWT, hashing secure storage auth flow
7 WebSockets & gRPC WS server, gRPC WS/gRPC clients streaming
8 Docker & Production containers, logging build/PWA CI/CD

Each block consists of:

  • 1 Lecture (1.5 hours): Deep theory, concepts, and comprehensive code examples
  • 1 Lab (1.5 hours): Extended hands-on implementation with both Go and Flutter

Block 1: Foundations

  • Go: Basic syntax, functions, structs, packages
  • Flutter: Widgets, layouts, basic UI components, stateful/stateless widgets
  • Integration: None
  • Deep Dive: Memory management, Go idioms, Flutter widget lifecycle

Block 2: Concurrency & Streams

  • Go: Goroutines, channels, select statements, worker pools, context package
  • Flutter: Async/await, futures, streams, StreamBuilder
  • Integration: Concurrent API calls and real-time data updates
  • Deep Dive: Advanced concurrency patterns, stream transformations

Block 3: Data & APIs

  • Go: HTTP servers, routing, middleware, JSON APIs, validation, error handling
  • Flutter: HTTP client, data models, serialization, caching
  • Integration: RESTful API communication and robust data handling
  • Deep Dive: API design patterns, advanced serialization, performance

Block 4: Database & Persistence

  • Go: PostgreSQL integration, GORM, migrations, transactions
  • Flutter: Local storage, SQLite, data caching
  • Integration: CRUD operations
  • Deep Dive: Database optimization, complex queries, data architecture

Block 5: Advanced Patterns & Testing

  • Go: Clean architecture, dependency injection, testing, mocking
  • Flutter: State management (Riverpod+Bloc), testing, navigation
  • Integration: End-to-end testing
  • Deep Dive: Design patterns, advanced testing strategies, code quality

Block 6: Authentication & Security

  • Go: JWT tokens, password hashing, middleware, validation, security best practices
  • Flutter: Authentication flow, secure storage, session management
  • Integration: Secure user authentication and authorization
  • Deep Dive: Security vulnerabilities, encryption, secure coding practices

Block 7: WebSockets & gRPC

  • Go: WebSocket servers, gRPC services, Protocol Buffers, streaming APIs
  • Flutter: WebSocket clients, gRPC client integration, real-time updates
  • Integration: Real-time communication and high-performance API calls
  • Deep Dive: gRPC streaming, WebSocket scaling, performance optimization

Block 8: Docker & Production

  • Go: Containerization, environment config, logging, performance
  • Flutter: Build optimization, PWA, deployment strategies
  • Integration: Full production deployment with CI/CD
  • Deep Dive: Production best practices, scaling, observability

๐Ÿš€ Results

Team Projects

# Project Brief Theme GitHub Link
1 The Laziness Tracker habit tracking https://github.com/one-zero-eight
2 Hydration Tracking water intake https://github.com/CAA-PdzLPn-TVrzhK/Hydration-tracking
3 Sleep Tracker sleep quality https://github.com/SleepTrackingApplication
4 Mental Health Companion well-being https://github.com/Sum25-GF-Mental-Health-Companion
5 First Aid Helper CPR / first-aid https://github.com/Bitochki-s-sirom/first-aid-helper
6 GoWithMe find sport mate https://github.com/MAL-da-udal/GoWithMe
7 Repeatro spaced-repetition https://github.com/GOeda-Co
8 Fitness Tracker App workouts https://github.com/VibeTeam
9 Fitness Tracking Hub workouts https://github.com/Flutter-Go-yippie
10 Nutrition Manager diet https://github.com/BeGraceful-Inc
11 Tatar Shower cold-shower habit https://github.com/pon4ik7/Tatar-shower
12 FitGym gym log https://github.com/1sarmatt/FitGym
13 Trips & Tickets transport https://github.com/group06854/Trips-and-Tickets-Service
14 SolarWind find gym-bro https://github.com/MisABU148/SolarWindGolangFlutter
15 Smartify edu-platform https://github.com/scruffyscarf/Smartify-Platform
16 Autotester testing web-app https://github.com/Golang-Flutter-Course-Project
17 Meditation App mindfulness https://github.com/Lntck/Meditation-App
18 Stress Manager stress diary https://github.com/slickip/Stress-management-app
19 HealthBuddy social goals https://github.com/GaM1rka/HealthBuddy
20 Productivity Dashboard productivity https://github.com/Go-Flutter-Dashboard
21 InnoSync App team-matching https://github.com/team-18-project

Final Project Requirements

Students build comprehensive full-stack applications covering all 8 blocks. Detailed requirements and guidelines available in docs/final-project/final-project-guidelines.md.

Fast-Track Completion

Students can pass the full course by completing a comprehensive project covering all 8 blocks. Requirements are detailed in docs/fast-track/tech-requirements.md.

Fast-Track Projects:


๐Ÿ›  Tech Stack

  • Backend: Go 1.24.3+, http, GORM, PostgreSQL, gRPC, Protocol Buffers
  • Frontend: Flutter 3.32.1+, Riverpod(Bloc), HTTP client, gRPC client
  • Infrastructure: Docker, Docker Compose, GitHub Actions
  • Database: PostgreSQL 17.5+, database migrations
  • Testing: Go testing, Flutter testing, integration tests

๐Ÿ“ Evaluation

Item Points
Attendance 14 (7*2)
Lab assignments 42 (7*6)
Peer review 14 (7*2)
Final team project 30

๐Ÿ—‚ Workflow

Full pipeline documentation with screenshots available in docs/submission/CONTRIBUTING.md

Overview

  1. Setup: Fork repository, clone locally, add upstream remote
  2. Development: Create feature branch (lab01-surname-name), implement lab requirements, test locally
  3. Local PR: Create pull request in your fork with detailed description
  4. Global PR: Submit pull request to main repository with link to local PR
  5. Submission: Submit global PR link to Moodle for grading

Key Steps

  • Branch naming: labXX-surname-name (all lowercase, no spaces)
  • Commit messages: Start with labXX: prefix, use present tense
  • Testing: Ensure all tests pass (make test) and code is linted (make lint)
  • Documentation: Include comprehensive descriptions in pull requests

๐Ÿ‘ฅ Peer Review

Detailed guidelines and assignments available in docs/peer-review/peer-review-guidelines.md

Overview

  1. Assignment: Check peer review table for your assigned students (2 per lab)
  2. Locate PRs: Find pull requests for assigned students in main repository
  3. Review Code: Examine files changed, test implementation, add comments
  4. Submit Links: Submit 2 review comment links to Moodle (1 point each)

๐Ÿ— Repository Structure

sum25-go-flutter-course/
โ”œโ”€โ”€ backend/                    # Go backend source code
โ”‚   โ”œโ”€โ”€ cmd/                   # Application entry points
โ”‚   โ”œโ”€โ”€ internal/              # Private application code
โ”‚   โ”œโ”€โ”€ tests/                 # Integration tests
โ”‚   โ”œโ”€โ”€ go.mod                 # Go module definition
โ”‚   โ””โ”€โ”€ Dockerfile             # Backend container
โ”œโ”€โ”€ frontend/                   # Flutter frontend source code
โ”‚   โ”œโ”€โ”€ lib/                   # Dart source code
โ”‚   โ”œโ”€โ”€ test/                  # Unit and widget tests
โ”‚   โ”œโ”€โ”€ web/                   # Web configuration
โ”‚   โ”œโ”€โ”€ pubspec.yaml           # Flutter dependencies
โ”‚   โ”œโ”€โ”€ nginx.conf             # Web server configuration
โ”‚   โ””โ”€โ”€ Dockerfile             # Frontend container
โ”œโ”€โ”€ labs/                       # Lab assignments and solutions
โ”‚   โ”œโ”€โ”€ lab01/                 # Lab 1: Foundations
โ”‚   โ”œโ”€โ”€ lab02/                 # Lab 2: Real-time Chat (Concurrency & Streams)
โ”‚   โ”œโ”€โ”€ lab03/                 # Lab 3: REST API Chat System (Data & APIs)
โ”‚   โ”œโ”€โ”€ lab04/                 # Lab 4: Database & Persistence
โ”‚   โ”œโ”€โ”€ lab05/                 # Lab 5: Advanced Patterns (Auth & Security)
โ”‚   โ”œโ”€โ”€ lab06/                 # Lab 6: gRPC Microservices & WebSocket Communication
โ”‚   โ””โ”€โ”€ lab07/                 # Lab 7: CI/CD, Docker, and Deployment
โ”œโ”€โ”€ slides/                     # Course presentation materials
โ”‚   โ”œโ”€โ”€ lecture00/             # Course introduction
โ”‚   โ”œโ”€โ”€ lecture01/             # Lecture 1: Foundations
โ”‚   โ”œโ”€โ”€ lecture02/             # Lecture 2: Concurrency & Streams
โ”‚   โ”œโ”€โ”€ lecture03/             # Lecture 3: Data & APIs
โ”‚   โ”œโ”€โ”€ lecture04/             # Lecture 4: Database & Persistence
โ”‚   โ”œโ”€โ”€ lecture05/             # Lecture 5: Advanced Patterns
โ”‚   โ”œโ”€โ”€ lecture06/             # Lecture 6: Communication & Microservices
โ”‚   โ””โ”€โ”€ lecture07/             # Lecture 7: CI/CD & Deployment
โ”œโ”€โ”€ docs/                       # Documentation
โ”‚   โ”œโ”€โ”€ fast-track/            # Fast-track project requirements
โ”‚   โ”œโ”€โ”€ final-project/         # Final project guidelines
โ”‚   โ”œโ”€โ”€ peer-review/           # Peer review assignments & guidelines
โ”‚   โ””โ”€โ”€ submission/            # Submission workflow documentation
โ”œโ”€โ”€ feedback/                   # Course feedback and analytics
โ”‚   โ”œโ”€โ”€ data/                  # Survey data
โ”‚   โ”œโ”€โ”€ figures/               # Generated charts
โ”‚   โ”œโ”€โ”€ images/                # Course images
โ”‚   โ””โ”€โ”€ scripts/               # Feedback analysis scripts
โ”œโ”€โ”€ .github/                    # GitHub configuration
โ”‚   โ””โ”€โ”€ workflows/             # CI/CD pipelines
โ”œโ”€โ”€ scripts/                    # Development scripts
โ”œโ”€โ”€ docker-compose.yml          # Local development environment
โ”œโ”€โ”€ Makefile                   # Common development tasks
โ””โ”€โ”€ README.md                  # This file

๐Ÿ”„ Course Improvement Summary

๐ŸŽฏ Key Takeaways for Future Improvements

  • Pacing & Time Management: The most frequent feedback was the need for better time distribution and more realistic deadlines.
  • Course Organization: Start earlier and maintain a consistent schedule throughout the semester.
  • Material Depth: Strive for a balance between comprehensive coverage and a digestible learning pace.
  • GitHub Workflow: This was a highlight for manyโ€”will definitely keep and further enhance this aspect!

๐Ÿ”„ Immediate Improvements for Next Iteration

  • Time Management & Scheduling: Adopt a more realistic schedule, extending the course from 1 month to 2 months, with only 1 lecture per week.
  • Structured Progression: Implement a clearer progression from basics to advanced topics, potentially dividing into two tracks: beginners and progressing students.
  • Unified Lab Theme: All lab tasks will follow a single theme, with each topic building step-by-step on the previous one.
  • Stable CI/CD & Requirements: All CI/CD pipelines will be tested in advance, and deadlines/requirements will remain unchanged after publication.

๐Ÿ“Š Feedback Visualisations

The course feedback is visualized in comprehensive graphs, representing students' responses collected after course completion. These visualizations provide insights into various aspects of the course, including overall impressions, skill development, peer interactions, and instructor effectiveness.

All survey charts are generated by feedback/scripts/final_feedback.py and stored in feedback/figures/.

Course Experience & Learning Outcomes

Overall Course Impressions

Overall Impressions

General sentiment and overall impressions of students towards the course upon completion.

Skill Development & Confidence

Now I...

Reflections on new skills and knowledge gained from the course, showing personal growth and development.

Confidence Level (1-10 Scale)

Confidence Level

Students' self-assessed confidence levels after completing the course, measured on a 1-10 scale.

Code Examples Clarity

Code Examples Clear

Feedback on the clarity and effectiveness of code examples provided throughout the course.

Peer Interactions & Course Comparison

Feelings After Talking with Classmates

Feel After Talk

Students' feelings after interacting with peers from other electives, highlighting cross-disciplinary learning value.

Course Comparison with Other Electives

Course Compare

How this elective compares to other courses in terms of difficulty, engagement, and educational value.

Help Received When Needed

Help Received

Students' experiences with receiving support and assistance when needed during the course.

Course Structure & Content

If Known in Advance...

If Known

Students' reflections on whether their expectations were met, exceeded, or not achieved based on prior knowledge.

At the End of the Course...

At End

Final reflections and takeaways at the course conclusion, summarizing end-of-course perspectives.

Unique Course Features

Liked Features Not Seen Elsewhere

Liked Unique

Unique elements of the course that were particularly appreciated, highlighting innovative aspects.

Glad These Were Absent

Glad Absent

Course elements that, while absent, were noted as positive omissions by students.

Not Enough Coverage

Not Enough

Areas where students felt content could have been expanded or covered more thoroughly.

Glad Not Included Here

Glad Not Here

Common course elements deliberately excluded here, to students' appreciation.

Learning Impact & Demotivators

What Students Learned

Learned

Comprehensive overview of learning outcomes and knowledge gained from the course.

Demotivating Factors

Demotivators

Elements that students found demotivating or challenging during the course.

Perceived Useless Content

Useless

Course elements perceived as unnecessary or less valuable by students.

Improvement Suggestions

Course Improvement Ideas

Improve By

Constructive feedback on how the course could be enhanced for future iterations.

Add/Remove Suggestions

Add Remove

Specific suggestions for content to add or remove from the course curriculum.

Irrelevant Topics

Irrelevant Topics

Topics that students felt were not relevant to the course objectives.

Instructor Feedback

Timur's Knowledge & Expertise

Timur Knowledge

Students' assessment of Timur's technical knowledge and teaching expertise.

Timur's English Level

Timur English

Feedback on Timur's English proficiency and its impact on the learning experience.

Timur's Approach vs Other Courses

Timur Approach

Comparison of Timur's teaching methodology with other instructors' approaches.

Future Aspirations & Recommendations

Student Recommendations

Recommendations

Detailed recommendations from students about the course and their learning experience.

Post-Course Goals

Goals

Students' aspirations and plans developed as a result of their course learnings.

Summer Promises

Promises

Students' commitments and promises inspired by their course achievements.

Course Performance

Grade Distribution

Grade Distribution

Grade Summary:

  • A Grades: 57 students (63.3%)
  • B Grades: 28 students (31.1%)
  • C Grades: 2 students (2.2%)
  • D Grades: 3 students (3.3%)
  • Total Students: 90

Raw Data Access

For detailed analysis, the complete feedback data is available in JSON format.


๐Ÿ“ธ Group Photo

Group Photo


๐Ÿ“„ License

This course material is licensed under MIT License - see LICENSE for details.

About

Summer elective: "Go+Flutter: Rapid Cross-Platform Development" 2025, Innopolis University

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors