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)
-
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
-
Reviewers:
- Alice: Approved ✓
- Bob: Approved ✓
- No changes requested
-
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
| Phase | Command | Branch |
|---|---|---|
| Start feature | git checkout -b feature/xyz | feature/* |
| Develop | git add, git commit | feature/* |
| Review | Create PR | GitHub |
| Merge | git merge feature/xyz | develop |
| Release | git checkout -b release/* | release/* |
| Deploy | Tag and merge to main | main |
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
Have questions on your tech stack, ongoing projects, or need one-to-one training?