Skip to main content

Complete SMS Project Workflow

Level: Intermediate

ℹ️ What You'll Learn
  • Full project workflow
  • Feature development lifecycle
  • Code review and merge
  • Release process
  • Team collaboration

Initial Setup

# Clone repository
git clone https://github.com/TeamSahasra/SMS.git
cd SMS

# Configure
git config user.name "Ravi Kumar"
git config user.email "ravi@example.com"

# View branches
git branch -a
# main
# develop
# feature/student-management

Start New Feature

# Update develop
git checkout develop
git pull

# Create feature branch
git checkout -b feature/fee-management

# Code structure
├── SMS.Core/
│ ├── Models/FeeAccount.cs
│ ├── Models/FeePayment.cs
│ └── Services/FeeService.cs
├── SMS.Data/
│ └── Repositories/FeeRepository.cs
├── SMS.Api/
│ └── Controllers/FeesController.cs
└── SMS.Tests/
└── FeeServiceTests.cs

Development Cycle

# Day 1: Create models
# Add FeeAccount.cs, FeePayment.cs
git add SMS.Core/Models/
git commit -m "Add fee domain models

- FeeAccount: StudentId, TotalFees, PaidAmount, Status
- FeePayment: Amount, PaidOn, PaymentMode, ReceiptNumber
- Enums: FeeStatus (Pending, Partial, Paid, Overdue)
"

# Day 2: Implement service
# Add FeeService.cs, FeeRepository.cs
git add SMS.Core/Services/ SMS.Data/Repositories/
git commit -m "Implement fee business logic

- FeeService: Calculate, Process, Report
- FeeRepository: CRUD operations
- Unit tests: 12 tests, 100% coverage
"

# Day 3: Create API
# Add FeesController.cs
git add SMS.Api/Controllers/
git commit -m "Add fees REST API endpoints

- GET /api/fees/{studentId} - Get fee account
- POST /api/fees/{studentId}/payments - Record payment
- GET /api/fees/{studentId}/history - Payment history
- Error handling, validation
"

# Push feature
git push -u origin feature/fee-management

Code Review (GitHub)

  1. Create Pull Request

    • Title: "Implement fee management system"
    • Description:
      ## Changes
      - Add FeeAccount and FeePayment models
      - Implement fee calculation service
      - Create REST API endpoints

      ## Testing
      - 12 unit tests (100% coverage)
      - Manual API testing completed
      - No breaking changes

      ## Files
      - SMS.Core/Models/Fee*.cs
      - SMS.Core/Services/FeeService.cs
      - SMS.Api/Controllers/FeesController.cs
  2. Reviewers:

    • Alice: Approved ✓
    • Bob: Approved ✓
    • No changes requested
  3. Merge

    # On GitHub, click "Merge Pull Request"

Sync Merged Changes

# Develop updated on GitHub
git checkout develop
git pull
# Fee management code now in develop

# Delete local feature branch
git branch -d feature/fee-management

Release Process

# Create release branch
git checkout -b release/v1.0.0

# Bump version, update docs
# Final testing in release/v1.0.0

# Merge to main
git checkout main
git merge release/v1.0.0
git tag -a v1.0.0 -m "Release SMS v1.0.0"
git push origin main
git push origin v1.0.0

# Merge back to develop
git checkout develop
git merge release/v1.0.0
git push origin develop

# Delete release branch
git branch -d release/v1.0.0

History View

git log --graph --oneline --all

* (main) v1.0.0 Merge branch 'release/v1.0.0'
|\
| * Add fees REST API endpoints
| * Implement fee business logic
| * Add fee domain models
|/
* (develop) Merge pull request #45: Implement fee management
* Fix student list filtering
* Add student registration

Key Workflow Summary

PhaseCommandBranch
Start featuregit checkout -b feature/xyzfeature/*
Developgit add, git commitfeature/*
ReviewCreate PRGitHub
Mergegit merge feature/xyzdevelop
Releasegit checkout -b release/*release/*
DeployTag and merge to mainmain

Key Takeaways

  • Feature isolation = safe development
  • Code review = quality control
  • Clear history = easy debugging
  • Team coordination = no conflicts
💡 SMS Workflow Tip

Follow this pattern for every feature. Consistency = reliability.

🤖Use AI to Learn Faster

Use ChatGPT, Claude, or Copilot to go deeper on Complete Workflow. Try these prompts:

  • "What's the complete feature development process?"
  • "How do we release a new version?"
  • "What should be in a pull request description?"
  • "Quiz me on complete workflow"

💡 Tip: After reading this article, paste your own code into AI and ask "What could go wrong here and why?" — fastest way to find edge cases and deepen understanding.

nexcoding.in