Sprint Planning
Summary
This document concerns the planning of each sprint, try to prioritize and setup the sprint goal, also referred to as an iteration by GitHub Projects.
Planning is done by choosing a set of features to be specified, and to be implemented from the requirements file. This may or may not be optimal, but it’s the best compromise I have for trying to uphold the software engineering process to a solo endeavour.
Tasks are split here, but they only contain the brief description of the task, not the details. For details, look into the issue that was raised for GitHub projects.
Iteration 3 (Dec 22, 2025 - Jan 4, 2026)
Main Goals:
- Write specification on Google Oauth flow.
- Finish login with Google Oauth flow (both backend and frontend).
- Write engineering specification on Forgot Password flow.
- Finish forgot password flow with OTP code sent to email address.
- Setup a seeding script for seeding in products.
- Finish CRUD on category (backend).
- Finish admin management panel for CRUD on category (frontend).
- Setup product database with full-text search or fuzzy-text search.
- Setup a service that queries the product database with full-text search.
- Setup dumb component for viewing a simple product.
- Setup a page to view authentication status.
- Finish a home page to signify authentication status.
Optional Goals:
- Setup a catalog that displays items and bids.
- Setup a CDN in front of S3.
- Profile Editing page & Request for Approval page.
- Stripe Integration.
Iteration 2 (Dec 8, 2025 - Dec 21, 2025)
Main Goals:
- Finish full login flow (both backend and frontend).
- Finish login with Google Oauth flow (both backend and frontend).
- Finish forgot password flow with OTP code sent to email address.
- Finish full register flow (both backend and frontend, with reCaptcha).
- Setup a mailing service.
- Setup S3 integration for product images.
- Setup a seeding script for seeding in products.
- Finish CRUD on category (backend).
- Finish admin management panel for CRUD on category (frontend).
Out of Scope (optional if every main goal has been achieved):
- Setup product database with full-text search or fuzzy-text search.
- Setup a service that queries the product database with full-text search.
- Setup a separate mailing system.
- Setup dumb component for viewing a simple product.
Iteration 1 (Nov 24, 2025 - Dec 7, 2025)
Main Goals:
- Setup a full list of requirements for the project.
- Setup a Foundation (Hello World empty projects) for both backend and frontend.
- Setup a working DevOps pipeline.
- Setup testing if needed (but might not be used)
- Design the database that should be enough for now that adheres to all requirements, as well as implementation details for OAuth2.
- Make the following Engineering Specs:
- Tech Stack used Specification
- Authentication and Authorization Specification
- Database Design Specification
- Setup a Docker Compose stack for fast spin-up for development purposes.
- Setup the full authentication flow with basic email/password login using PKCE.
- OAuth2 Clients and Authentication
- Access Token Grants
- Refresh and Refresh Token Rotation
- Logout and Invalidation
Out of Scope (Optional if every main goal has been achieved):
- Middlewares to integrate with OAuth2 implementation.
- Test-driven Development with
go testorvitest.
Tasks split:
- SPEC: Rewrite the list of requirements for the project.
- DES: Design the basic database system that will be used to be bootstrapped with.
- SPEC: Write a formal specification on each library used that will satisfy the project requirements.
- CI: Setup a GitHub Actions pipeline that works with build-image-deploy flow.
- SPEC: Write up the final sprint planning for sprint 1.
- SPEC: Write up the authentication flow engineering specification.
- SPEC: Design and setup the project’s architectures.
- BE: Setup an empty minimal Golang backend.
- FE: Setup an empty minimal Vue frontend.
- BE: Implement GORM models for the authentication flow.
- BE: Implement register/login flow with JWT pair and PKCE.
- CHORE: Setup a Docker Compose setup for easy setting-up a local development environment.