Kudos Project
Problem
As students and developers, our lives move fast, and accomplishments for our work often goes unnoticed. Since we are tasked with executing and delivering software on top of schoolwork and other responsibilities, it is easy to feel overworked and burnt out.
The Tech Team will create a tool that facilitates interconnectivity across project teams by allowing developers to leave feedback under each other's work during sprints.**
Feedback can be positive or constructive, and will always be anonymous.
Features
The app consists of two main pages.
Features for page 1, the main page:
- a 4 x 4 card layout, where each card contains the following:
- commit content headline
- teams dropdown -> clickable sections to view the commits for each project team
- team 1
- 3/21 sprint
each of these components will have filter, sort, and search functionality
Features reference
Page 2 will have admin access only.
- dashboard layout where an admin can do the following:
- start a kudos
session**session. admins can open up the kudos board for developers to visit and interact with. the vidibility of the board changes at the admin's discretion. - review all
comments**comments. admin can see comments on all commits (with username attached?) (identify user who made comment, but dont display content?) - view comment
analytics**analytics. admin can see how many comments a developer has made by sprint or all time. - set timed start and
end**end. admin can set a timer that will be displayed on the maoin page indicating when the next session will be. once a session is in progress, another timer will be dispalyed indicating when the session will close.
End-to-End User Workflow
1. General User (Developer) Experience
- Initial Access:
- The user opens the application in their web browser.
- Browsing Commits:
- The user can scroll through the 4x4 card layout to view different commits.
- Leaving Feedback (Kudos):
- If a kudos session is active (indicated by a timer or clear visual), the user can enter feedback in the text input box within each commit card.
- Viewing Session Status:
- The user can see the status of the current kudos session (active, inactive, time remaining) on the main page.
2. Admin User Experience
- Accessing Admin Page:
- The admin user logs in with their credentials.
- Starting/Ending a Kudos Session:
- The admin uses the dashboard to start or end a kudos session.
- Reviewing Comments:
- The admin can view all comments on the dashboard.
- Viewing Comment Analytics:
- The admin can view comment analytics, such as the number of comments per developer and per sprint.
- Setting Timed Start/End:
- The admin can set the start and end time of a kudos session.
High Level Architecture
- Frontend (Client-Side):
- React/TSX UI
- handling user interactions, and displaying data.
- rendering the 4x4 card layout, sidebar navigation, and admin dashboard.
- API calls to backend db.
- Backend (Server-Side):
- Django/Python for the APIs.
- manages data retrieval from GitHub API
- handles auth using GitHub API
- implements logic for filtering, sorting, and searching commits and comments.
- Database???:
- MongoDB to store commit data, user information, comments, and session details.
- Real-time Communication???:
- websockets?
Outstanding Questions
should we store commit data? or just pull instances from API?