-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SCRUM-10 (Dashboard) #37
Merged
Merged
Changes from all commits
Commits
Show all changes
5 commits
Select commit
Hold shift + click to select a range
699caa0
dev: demo dashboard created sucessfully
mrkc2303 c448b22
fix: Fixed one Rspec senario
mrkc2303 072eae1
doc: Documentation fixes and cleaning
mrkc2303 3820c23
doc: final documentation changes
mrkc2303 7a55817
robocop code correction
mrkc2303 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,89 +1,32 @@ | ||
# Important Links | ||
- **Deployed App:** https://csce606arcade-12ac8dd4dc24.herokuapp.com/users | ||
- **Code Climate Report:** https://codeclimate.com/github/tamu-edu-students/csce600-arcade | ||
- **Project Management Page:** https://tamu-team-pyr0027e.atlassian.net/jira/software/projects/SCRUM/boards/1 | ||
# ARCADE | ||
|
||
## Project Overview | ||
|
||
The development of Arcade is driven by the vision of our primary customer, Prof. Ritchey. Prof. Ritchey was frustrated with the monetization of platforms like the New York Times games, which require users to log in and pay for access. These barriers not only make the experience cumbersome but also limit accessibility for many users. | ||
|
||
In response, we are currently developing Arcade, an application that will offer a collection of games similar to those on the New York Times platform, but with free access and no mandatory login requirements. Users will be able to enjoy these games without creating an account or paying any fees, ensuring a seamless and unrestricted experience. | ||
|
||
Arcade will also include an optional login feature to enhance the user experience. Logged-in users will have the ability to save their progress and view rankings across various games. However, the login remains optional, allowing users to enjoy the platform without any obligations if they prefer. | ||
|
||
This project aligns with Prof. Ritchey’s goal of creating a more accessible, user-friendly gaming experience, free from the frustrations caused by monetized platforms. | ||
|
||
# Team Working Agreement | ||
## Team Information | ||
- **Client:** Dr. Ritchey | ||
- **Client Meetings:** Every Thursday, 4 PM - 5 PM, via Zoom | ||
- **Developers:** Kanishk Chhabra, Nandinii Yeleswarapu, Tejas Singhal, Krishna Calindi, Junchao, Ze Sheng, Antonio | ||
|
||
## Sprint - 1 | ||
- **Product Owner:** Tejas Singhal | ||
- **Scrum Master:** Nandinii Yeleswarapu | ||
## Purpose | ||
This agreement outlines the team's shared understanding of collaboration, communication, and delivery to ensure we meet our goals and provide value effectively. It reflects our commitment to the Scrum values: **Commitment**, **Focus**, **Openness**, **Respect**, and **Courage**. | ||
## Key Values | ||
### 1. **Commitment** | ||
- Each team member is responsible for completing their assigned story points within the sprint. | ||
- Team members ensure transparency by updating their tasks daily in the project management tool. | ||
- Everyone commits to attending daily stand-ups, sprint planning, reviews, and retrospectives on time. | ||
### 2. **Focus** | ||
- We will concentrate on sprint goals, ensuring our efforts contribute directly to the current sprint backlog. | ||
- During core collaboration hours, team members should minimize distractions and focus on assigned tasks. | ||
### 3. **Openness** | ||
- Progress will be shared openly during stand-ups, especially blockers that require team support. | ||
- Transparent communication is encouraged, whether it's about issues, delays, or new ideas. | ||
- All feedback is valuable. We will create an environment where all ideas and perspectives are heard and respected. | ||
### 4. **Respect** | ||
- Respect each team member's time by being punctual for meetings and providing timely updates on tasks. | ||
- Ensure all voices are heard during meetings, promoting inclusivity and collaboration. | ||
### 5. **Courage** | ||
- Team members are encouraged to take on challenging tasks and continue learning. | ||
- We will embrace constructive criticism and use it to improve our processes and outputs. | ||
## Working Hours | ||
- **Core Hours:** 4 PM - 10 PM (team members are expected to be available for collaboration). | ||
- **Flexible Hours:** Outside core hours, team members may work at their convenience but must ensure sprint commitments are met. | ||
## Communication Guidelines | ||
- **Primary Tool:** Slack (for daily updates, queries, and informal communication). | ||
- **Project Management:** Tasks and progress will be tracked using Jira. | ||
- **Email:** Used for formal communication with external stakeholders (e.g., client). | ||
- **Video Conferencing:** Slack Huddle for team meetings and daily stand-ups, Zoom for client meetings. | ||
### Communication Expectations: | ||
- **Slack:** Respond within 2 hours during core working hours. | ||
- **Email:** Respond within 1 business day. | ||
- **Stand-ups:** Attend daily at 10:00 AM CST, sharing progress, blockers, and plans for the day. | ||
## Meetings | ||
- **Daily Stand-up:** Focus on what was completed, upcoming tasks, and any blockers. | ||
- **Client Meeting:** Thursdays, 4 PM - 5 PM via Zoom. Prepare key updates and questions in advance. | ||
- **Sprint Review & Retrospective:** End of each sprint, typically on Fridays, 3 PM - 6 PM. Review what went well, and what didn't, and identify action points for improvement. | ||
## Definition of Completion | ||
- All tasks must meet the acceptance criteria outlined in the user story. | ||
- Code must be reviewed and merged into the main branch, with relevant documentation updated. | ||
- Feature deployment must be tested in the staging environment before presenting to the client. | ||
## Tools and Resources | ||
- **Code Repository:** GitHub (all code changes should follow GitFlow and include peer code reviews). | ||
- **Deployed Application:** Regular updates are required to ensure the app reflects the current progress. | ||
- **Project Management Tool:** Jira is used to track tasks, story points, and overall progress. | ||
## Collaboration Practices | ||
- Pair programming or team collaboration is encouraged for complex tasks. | ||
- All features should undergo a review process before being merged into the codebase. | ||
- If you encounter a blocker, communicate it early and seek assistance from team members or the Scrum Master. | ||
## Risk and Escalation | ||
- For unexpected risks or delays, promptly communicate with the Scrum Master or Product Owner. | ||
- If a risk may affect delivery, it will be discussed during the next stand-up or relevant meeting. | ||
## Client Feedback Process | ||
- Feedback from the client, Dr. Ritchey, will be reviewed and incorporated into our sprint planning. | ||
- Action points from the client meeting will be documented and shared with the team via Jira or Slack. | ||
## SDLC for this project | ||
1. `main` is the top level branch for this project and maintains the latest fully tested working | ||
copy of the codespace and should be deployable at any time. | ||
2. When picking up a new ticket, checkout a new branch off of `main` and commit all your code to that branch | ||
a. When the code is ready, **ensure all acceptance and unit tests are passing for the whole project**, | ||
pull the latest version of `main`, merge `main` into your feature branch, resolve any merge conflicts, | ||
ensure build is successful then push your code to github and create a pull request. | ||
b. Assign a developer in the team to review the code | ||
c. Once reviewed, merge your feature branch back to `main` and delete your feature branch. | ||
3. Everytime code is merged to the `main` branch, Acceptance tests and Unit tests will be run on | ||
on `main` to ensure we still have a woring copy of the code. If the tests fail, we fix the defects | ||
before any new feature work is picked up. If the tests run succesfully, we deploy `main` to Heroku. | ||
4. When we are ready to deploy, we merge `main` into `prod` and CICD takes care of the deployment. | ||
## Revisiting the Agreement | ||
This working agreement is a living document. The team will review and adjust it at the start of each sprint during Sprint Planning to ensure it reflects our evolving needs. | ||
--- | ||
Team Arcade is committed to upholding this agreement and collaborating effectively to deliver value to our client, Dr. Ritchey. | ||
- [Sprint 1 Plan](./documentation) | ||
|
||
# Important Links | ||
- [Team Working Agreement](TEAM_WORK_AGREEMENT.md) | ||
- **Deployed App:** https://csce606arcade-12ac8dd4dc24.herokuapp.com/users | ||
- **Code Climate Report:** https://codeclimate.com/github/tamu-edu-students/csce600-arcade | ||
- **Project Management Page:** https://tamu-team-pyr0027e.atlassian.net/jira/software/projects/SCRUM/boards/1 | ||
|
||
## Software dependencies and version | ||
**Ruby** - 3.3.4 | ||
**Rails** - 7.2.1 | ||
**Ruby** - 3.3.4 \ | ||
**Rails** - 7.2.1 \ | ||
**Rack** - 3.1.7 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,80 @@ | ||
|
||
# Team Working Agreement | ||
## Team Information | ||
- **Client:** Dr. Ritchey | ||
- **Client Meetings:** Every Thursday, 4 PM - 5 PM, via Zoom | ||
- **Developers:** Kanishk Chhabra, Nandinii Yeleswarapu, Tejas Singhal, Krishna Calindi, Junchao, Ze Sheng, Antonio | ||
## Sprint - 1 | ||
- **Product Owner:** Tejas Singhal | ||
- **Scrum Master:** Nandinii Yeleswarapu | ||
## Purpose | ||
This agreement outlines the team's shared understanding of collaboration, communication, and delivery to ensure we meet our goals and provide value effectively. It reflects our commitment to the Scrum values: **Commitment**, **Focus**, **Openness**, **Respect**, and **Courage**. | ||
## Key Values | ||
### 1. **Commitment** | ||
- Each team member is responsible for completing their assigned story points within the sprint. | ||
- Team members ensure transparency by updating their tasks daily in the project management tool. | ||
- Everyone commits to attending daily stand-ups, sprint planning, reviews, and retrospectives on time. | ||
### 2. **Focus** | ||
- We will concentrate on sprint goals, ensuring our efforts contribute directly to the current sprint backlog. | ||
- During core collaboration hours, team members should minimize distractions and focus on assigned tasks. | ||
### 3. **Openness** | ||
- Progress will be shared openly during stand-ups, especially blockers that require team support. | ||
- Transparent communication is encouraged, whether it's about issues, delays, or new ideas. | ||
- All feedback is valuable. We will create an environment where all ideas and perspectives are heard and respected. | ||
### 4. **Respect** | ||
- Respect each team member's time by being punctual for meetings and providing timely updates on tasks. | ||
- Ensure all voices are heard during meetings, promoting inclusivity and collaboration. | ||
### 5. **Courage** | ||
- Team members are encouraged to take on challenging tasks and continue learning. | ||
- We will embrace constructive criticism and use it to improve our processes and outputs. | ||
## Working Hours | ||
- **Core Hours:** 4 PM - 10 PM (team members are expected to be available for collaboration). | ||
- **Flexible Hours:** Outside core hours, team members may work at their convenience but must ensure sprint commitments are met. | ||
## Communication Guidelines | ||
- **Primary Tool:** Slack (for daily updates, queries, and informal communication). | ||
- **Project Management:** Tasks and progress will be tracked using Jira. | ||
- **Email:** Used for formal communication with external stakeholders (e.g., client). | ||
- **Video Conferencing:** Slack Huddle for team meetings and daily stand-ups, Zoom for client meetings. | ||
### Communication Expectations: | ||
- **Slack:** Respond within 2 hours during core working hours. | ||
- **Email:** Respond within 1 business day. | ||
- **Stand-ups:** Attend daily at 10:00 AM CST, sharing progress, blockers, and plans for the day. | ||
## Meetings | ||
- **Daily Stand-up:** Focus on what was completed, upcoming tasks, and any blockers. | ||
- **Client Meeting:** Thursdays, 4 PM - 5 PM via Zoom. Prepare key updates and questions in advance. | ||
- **Sprint Review & Retrospective:** End of each sprint, typically on Fridays, 3 PM - 6 PM. Review what went well, and what didn't, and identify action points for improvement. | ||
## Definition of Completion | ||
- All tasks must meet the acceptance criteria outlined in the user story. | ||
- Code must be reviewed and merged into the main branch, with relevant documentation updated. | ||
- Feature deployment must be tested in the staging environment before presenting to the client. | ||
## Tools and Resources | ||
- **Code Repository:** GitHub (all code changes should follow GitFlow and include peer code reviews). | ||
- **Deployed Application:** Regular updates are required to ensure the app reflects the current progress. | ||
- **Project Management Tool:** Jira is used to track tasks, story points, and overall progress. | ||
## Collaboration Practices | ||
- Pair programming or team collaboration is encouraged for complex tasks. | ||
- All features should undergo a review process before being merged into the codebase. | ||
- If you encounter a blocker, communicate it early and seek assistance from team members or the Scrum Master. | ||
## Risk and Escalation | ||
- For unexpected risks or delays, promptly communicate with the Scrum Master or Product Owner. | ||
- If a risk may affect delivery, it will be discussed during the next stand-up or relevant meeting. | ||
## Client Feedback Process | ||
- Feedback from the client, Dr. Ritchey, will be reviewed and incorporated into our sprint planning. | ||
- Action points from the client meeting will be documented and shared with the team via Jira or Slack. | ||
## SDLC for this project | ||
1. `main` is the top level branch for this project and maintains the latest fully tested working | ||
copy of the codespace and should be deployable at any time. | ||
2. When picking up a new ticket, checkout a new branch off of `main` and commit all your code to that branch | ||
a. When the code is ready, **ensure all acceptance and unit tests are passing for the whole project**, | ||
pull the latest version of `main`, merge `main` into your feature branch, resolve any merge conflicts, | ||
ensure build is successful then push your code to github and create a pull request. | ||
b. Assign a developer in the team to review the code | ||
c. Once reviewed, merge your feature branch back to `main` and delete your feature branch. | ||
3. Everytime code is merged to the `main` branch, Acceptance tests and Unit tests will be run on | ||
on `main` to ensure we still have a woring copy of the code. If the tests fail, we fix the defects | ||
before any new feature work is picked up. If the tests run succesfully, we deploy `main` to Heroku. | ||
4. When we are ready to deploy, we merge `main` into `prod` and CICD takes care of the deployment. | ||
## Revisiting the Agreement | ||
This working agreement is a living document. The team will review and adjust it at the start of each sprint during Sprint Planning to ensure it reflects our evolving needs. | ||
--- | ||
Team Arcade is committed to upholding this agreement and collaborating effectively to deliver value to our client, Dr. Ritchey. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,80 @@ | ||
/* Game History Container */ | ||
.game-history { | ||
display: flex; | ||
justify-content: space-between; | ||
padding: 20px; | ||
background-color: #e0e0e0; /* Light gray background */ | ||
border-radius: 10px; | ||
margin-bottom: 20px; | ||
} | ||
|
||
/* Each Stat Card */ | ||
.game-history .stat-card { | ||
flex: 1; | ||
background-color: #333; | ||
color: #fff; | ||
padding: 20px; | ||
margin: 0 10px; | ||
text-align: center; | ||
border-radius: 10px; | ||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); | ||
} | ||
|
||
.game-history .stat-card h3 { | ||
font-size: 2.5rem; | ||
margin-bottom: 10px; | ||
} | ||
|
||
.game-history .stat-card p { | ||
font-size: 1.2rem; | ||
color: #ccc; | ||
} | ||
|
||
.stat-label { | ||
font-size: 0.9rem; | ||
color: #aaa; | ||
} | ||
|
||
/* Game Cards Container */ | ||
.game-list { | ||
display: grid; | ||
grid-template-columns: repeat(2, 1fr); | ||
grid-gap: 20px; | ||
} | ||
|
||
.game-card { | ||
background-color: #333; | ||
color: #fff; | ||
padding: 20px; | ||
border-radius: 10px; | ||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); | ||
} | ||
|
||
.game-card h4 { | ||
font-size: 1.5rem; | ||
color: #fff; | ||
margin-bottom: 10px; | ||
} | ||
|
||
.game-card p { | ||
font-size: 1rem; | ||
margin: 5px 0; | ||
color: #ccc; | ||
} | ||
|
||
.game-card p.status { | ||
color: green; | ||
font-weight: bold; | ||
} | ||
|
||
/* Responsive Design */ | ||
@media (max-width: 768px) { | ||
.game-history { | ||
flex-direction: column; | ||
gap: 10px; | ||
} | ||
|
||
.game-list { | ||
grid-template-columns: 1fr; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
class DashboardController < ApplicationController | ||
before_action :require_login, only: [ :show ] | ||
|
||
def show | ||
# Dummy data to simulate user statistics | ||
@dummy_dashboard = { | ||
user_id: 1, | ||
total_games_played: 950, | ||
total_games_won: 450, | ||
last_played: time_ago_in_words(Time.parse("2024-09-27")), | ||
current_streak: 12, | ||
longest_streak: 15 | ||
} | ||
|
||
# Dummy data to simulate game history | ||
@dummy_games = [ | ||
{ name: "Spelling Bee", played_on: "2024-09-27", status: "Won", points: 1354 }, | ||
{ name: "Wordle", played_on: "2024-09-27", status: "Won", points: 1354 }, | ||
{ name: "Letter Boxed", played_on: "2024-09-27", status: "Won", points: 1354 } | ||
] | ||
end | ||
|
||
private | ||
def time_ago_in_words(from_time) | ||
distance_in_minutes = ((Time.now - from_time) / 60).to_i | ||
|
||
case distance_in_minutes | ||
when 0..59 | ||
"#{distance_in_minutes}m ago" # Minutes ago | ||
when 60..1439 | ||
"#{distance_in_minutes / 60}h ago" # Hours ago | ||
else | ||
"#{distance_in_minutes / 1440}d ago" # Days ago | ||
end | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
class Dashboard < ApplicationRecord | ||
# belongs_to :user | ||
# has_many :games | ||
|
||
def update_statistics(game) | ||
self.total_games_played += 1 | ||
self.total_games_won += 1 if game.won? | ||
self.last_played = game.played_on | ||
# Logic for streaks goes here | ||
self.save | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
<%= stylesheet_link_tag 'dashboard', media: 'all', 'data-turbolinks-track': 'reload' %> | ||
<%= render "/games/all_pages_nav" %> | ||
<h1>Welcome to Your Dashboard!</h1> | ||
<!-- Game Stats Section --> | ||
<div class="game-history"> | ||
<!-- Total Games Played --> | ||
<div class="stat-card"> | ||
<h3><%= @dummy_dashboard[:total_games_played] %></h3> | ||
<p class="stat-label">Total Games Played</p> | ||
</div> | ||
<!-- Last Played --> | ||
<div class="stat-card"> | ||
<h3><%= @dummy_dashboard[:last_played] %></h3> <!-- Dynamically calculated last played time --> | ||
<p class="stat-label">Last Played</p> | ||
</div> | ||
<!-- Total Games Won --> | ||
<div class="stat-card"> | ||
<h3><%= @dummy_dashboard[:total_games_won] %></h3> | ||
<p class="stat-label">Total Games Won</p> | ||
</div> | ||
</div> | ||
<!-- Recent Games Section --> | ||
<h2>Your Recent Games</h2> | ||
<div class="game-list"> | ||
<% @dummy_games.each do |game| %> | ||
<div class="game-card"> | ||
<h4><%= game[:name] %></h4> | ||
<p>Played on: <%= game[:played_on] %></p> | ||
<p class="status">Status: <%= game[:status] %></p> | ||
<p>Points Earned: <%= game[:points] %></p> | ||
</div> | ||
<% end %> | ||
</div> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
Feature: Dashboard | ||
|
||
Background: | ||
Given I am logged into Arcade | ||
|
||
Scenario: Viewing the dashboard | ||
When I visit the dashboard page | ||
Then I should see "Welcome to Your Dashboard!" | ||
And I should see "Total Games Played" | ||
And I should see "Total Games Won" | ||
And I should see "Last Played" | ||
And I should see "Wordle" | ||
|
||
Scenario: Guest user tries to access dashboard | ||
Given I am a guest user | ||
When I try to visit the dashboard page | ||
Then I should see "Welcome, Guest!" |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thank you for doing this! I completely missed that part of the assignment and read it as put it in your read me