The Student Assignment Tracker System is a web-based application designed to help students manage their academic assignments and deadlines efficiently.
The system allows students to organize subjects, track assignments, and monitor upcoming deadlines in one centralized platform.
System Specification: SPECIFICATION.md
System Architecture: ARCHITECTURE.md
Stakeholder Analysis: STAKEHOLDERS.md
System Requirements: REQUIREMENTS.md
Reflection: REFLECTION.md
Use Cases: USECASES.md
Test Cases: TESTCASES.md
Reflection: REFLECTION_A5.md
Agile Planning: AGILE.md
Reflection: REFLECTION_A6.md
- Java (Spring Boot)
- MySQL
- GitHub (Issues, Projects, Milestones)
- Mermaid (Diagrams)
This project demonstrates a complete software engineering lifecycle, including requirements gathering, system design, testing, and Agile planning.
The Kanban board demonstrates Agile workflow by moving tasks through stages:
- To Do → In Progress → Testing → Done
- Blocked tasks highlight issues preventing progress
The board was customized by adding:
- Testing: Ensures tasks are verified before completion
- Blocked: Highlights tasks that cannot proceed
This improves workflow visibility and aligns with Agile best practices.
Assignment 11 focused on implementing Behavioral Design Patterns in the Student Assignment Tracker System.
The following patterns were implemented:
- Strategy Pattern
- Observer Pattern
These patterns improve flexibility, communication, and maintainability within the system.
The Strategy Pattern was implemented to support dynamic assignment prioritization.
PrioritizationStrategyDeadlineStrategyDifficultyStrategyAssignmentManager
Allows the system to switch prioritization behavior dynamically at runtime.
The Observer Pattern was implemented to support assignment notifications.
ObserverSubjectAssignmentTrackerStudentObserver
Allows students to receive assignment update notifications automatically.
JUnit 5 was used to test:
- Strategy behavior switching
- Observer notification functionality
BehavioralPatternTests.java
This assignment demonstrated the implementation of Behavioral Design Patterns using Java and JUnit 5 while applying Agile development practices through GitHub Issues, Boards, and Milestones.
Assignment 12 focused on implementing a Service Layer and RESTful API for the Student Assignment Tracker System using Spring Boot.
- Repository layer
- Service layer business logic
- RESTful CRUD API endpoints
- Assignment completion workflow
- Swagger/OpenAPI documentation
- Unit and integration testing
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/assignments | Fetch all assignments |
| POST | /api/assignments | Create assignment |
| PUT | /api/assignments/{id} | Update assignment |
| POST | /api/assignments/{id}/complete | Complete assignment |
Assignment 13 focused on implementing Continuous Integration and Continuous Deployment (CI/CD) using GitHub Actions.
- Automated test execution
- Maven build automation
- JAR artifact generation
- Branch protection rules
- Pull request validation
- GitHub Actions workflow automation
The GitHub Actions workflow automatically:
- Runs on every push
- Runs on pull requests to main
- Executes all unit and integration tests
- Builds the Spring Boot application
- Uploads a JAR artifact when merged to main
mvn clean test
---
# Assignment 14 - Open Source Collaboration
## Open Source Repository Preparation
Assignment 14 focused on transforming the Student Assignment Tracker System into a professional open-source ready GitHub repository.
The repository was prepared for collaboration through:
- Contributor onboarding documentation
- GitHub Issues and labels
- Roadmap planning
- Open-source licensing
- Community engagement
- Professional repository management
---
## Contributor Documentation
### Contribution Guidelines
[CONTRIBUTING.md](CONTRIBUTING.md)
### Project Roadmap
[ROADMAP.md](ROADMAP.md)
### Community Engagement
[VOTING_RESULTS.md](VOTING_RESULTS.md)
### Reflection
[REFLECTION_A14.md](REFLECTION_A14.md)
---
## Open Source Features
The repository includes:
- MIT License
- Protected branches
- Pull request validation
- GitHub Actions CI/CD
- Automated testing
- Contributor onboarding
- Good first issues
- Feature request tracking
---
## Contribution Workflow
Contributors follow this workflow:
1. Fork the repository
2. Create a feature branch
3. Implement changes
4. Run tests
5. Submit pull request
6. Pass CI/CD validation
7. Merge after review
---
## Collaboration Readiness
The project was prepared for open-source collaboration through:
- Clear setup instructions
- Coding standards
- Testing procedures
- GitHub issue tracking
- CI/CD automation
- Agile GitHub workflows
---
## Future Development Goals
Planned future enhancements include:
- JWT authentication
- Mobile application support
- Analytics dashboard
- Cloud deployment
- Real-time notifications
- Improved UI/UX
- Performance optimization
---
## License
This project is licensed under the MIT License.
---
## Community Engagement Evidence
The repository was shared with peers to encourage open-source participation and collaboration.
### Repository Community Metrics

The project received community interaction through:
- Repository stars
- Repository forks
- Peer feedback
- Contribution discussions