Skip to content

Commit

Permalink
New layout for dashboard. Rules of engagement added.
Browse files Browse the repository at this point in the history
  • Loading branch information
stevebrownlee committed Mar 16, 2024
1 parent 54cada6 commit f9d3596
Show file tree
Hide file tree
Showing 4 changed files with 132 additions and 43 deletions.
4 changes: 4 additions & 0 deletions src/components/StudentViews.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import { LearningGoals } from "./info/Goals"
import { Repos } from "./info/Repos"
import { ServerAssessment } from "./info/ServerSideRequirements"
import { StudentDashboard } from "./dashboard/student/StudentDashboard.js"
import { RulesOfEngagment } from "./info/RulesOfEngagment.js"

export const StudentViews = () => {
return <>
Expand All @@ -23,6 +24,9 @@ export const StudentViews = () => {
<Route exact path="/repos">
<Repos />
</Route>
<Route exact path="/roe">
<RulesOfEngagment />
</Route>
<Route exact path="/goals">
<LearningGoals />
</Route>
Expand Down
76 changes: 36 additions & 40 deletions src/components/dashboard/student/StudentInfo.js
Original file line number Diff line number Diff line change
Expand Up @@ -28,31 +28,33 @@ export const StudentInfo = ({ profile }) => {
<div>
<h3 className="studentAccount__header">Current Project</h3>
<div>
<div>{profile?.project?.book_name}: {profile?.project?.name}</div>
{
profile && "project" in profile && profile.project.id === 0
? <div>None</div>
: <div>{profile?.project?.book_name}: {profile?.project?.name}</div>
}
</div>
</div>
</section>

<section className="assessmentInfo text--mini" style={{ display: "flex", flexDirection: "row" }}>
<section className="assessmentInfo text--mini" >
<div className="assessmentInfo__book" style={{ display: "flex", flexDirection: "column" }}>
<header style={{ flex: 1, minHeight: "10rem" }}>
<header>
<h3>Book Assessment Status</h3>
{
profile?.assessment_overview?.length > 0
? profile?.assessment_overview?.map(assmt => <AssessmentRow key={`assmt--${assmt.id}`} assmt={assmt} />)
: "No self-assessments submitted yet"
}
</header>
<div style={{ flex: 4 }} className="notificationButtons">
<p>
<div className="notificationButtons">
<section>
<h3 className="studentAccount__header">Book Self-Assessments</h3>
</p>
</section>
<p>
When you are ready to start the self-assessment process for the
book you are currently working on, please click the button below to
let your instructors know.
You are done with the core projects in a book and need the link from an instructor to start your self-assessment project.
</p>
<p>
<section>
<Button color="iris"
onClick={
() => fetchIt(`${Settings.apiHost}/notify`, {
Expand All @@ -62,13 +64,11 @@ export const StudentInfo = ({ profile }) => {
})
}).then(() => window.alert("Your instructors have been notified"))
}>
Ready to Start Self-Assessment
Request Self-Assessment
</Button>
</p>
</section>
<p>
When you have completed your reflections on your learning goals for this
book, please click the button below to let your instructors know to review
your vocabulary on the concepts.
You are done with your self-assessment project and are ready to review vocabulary with an instructor.
</p>
<p>
<Button color="grass"
Expand All @@ -81,41 +81,37 @@ export const StudentInfo = ({ profile }) => {
})
.then(() => window.alert("Your instructors will schedule a time to review your vocabulary with you."))
}
>Ready for Vocab Review</Button>
>Request Vocab Review</Button>
</p>
</div>
</div>
<div className="assessmentInfo__capstone" style={{ display: "flex", flexDirection: "column" }}>
<header style={{ flex: 1, minHeight: "10rem" }}>
<div className="assessmentInfo__capstone" style={{ marginTop: "5rem" }}>
<header>
<h3>Capstone Assessment Status</h3>
{
profile?.capstones?.length > 0
? profile?.capstones?.map(capstone => <CapstoneRow key={`capstone--${capstone.capstone__id}`} capstone={capstone} />)
: "No proposals submitted yet"
: "No capstone proposals submitted yet"
}
</header>
<div style={{ flex: 4 }} className="notificationButtons">
<div className="notificationButtons">
<h3>Capstone Project Proposals</h3>
<div style={{ margin: "0 1rem" }}>
<p>
When you are ready to start building your capstone proposal,
please click the button below and make a copy of the template document.
</p>
<Button color="iris"
onClick={() => window.open("https://docs.google.com/document/d/1FGMU-wQqIciig0JhtOBBKOORSPCROUW0Y27w9io4qMg/edit", "_blank")}
>Proposal Template</Button>
</div>

<div style={{ margin: "0 1rem" }} >
<p>
When you are ready to submit your capstone proposal, click the
button below to let your instructors know that it is ready for review.
</p>
<Button color="grass"
onClick={() => history.push("/proposal/client")}>
Submit Proposal
</Button>
</div>
<p>
When you are ready to start building your capstone proposal,
please click the button below and make a copy of the template document.
</p>
<Button color="iris"
onClick={() => window.open("https://docs.google.com/document/d/1FGMU-wQqIciig0JhtOBBKOORSPCROUW0Y27w9io4qMg/edit", "_blank")}
>Proposal Template</Button>

<p>
When you are ready to submit your capstone proposal, click the
button below to let your instructors know that it is ready for review.
</p>
<Button color="grass"
onClick={() => history.push("/proposal/client")}>
Submit Proposal
</Button>
</div>
</div>
</section>
Expand Down
89 changes: 89 additions & 0 deletions src/components/info/RulesOfEngagment.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
import React from "react"
import { Heading } from '@radix-ui/themes';
import "./Goals.css"

export const RulesOfEngagment = () => {
return <article className="dashboard--student">

<Heading size="7">Rules of Engagement for NSS Sprint Teams</Heading>

<ul>
<li>The point of sprints is for you to really <strong>learn</strong> these concepts that you were exposed to in the individual projects and start becoming a professional developer.</li>
<li>Your goal is not to "get it done". You will be focused on that on the job, but not here.</li>
</ul>

<Heading size="5">Git/Github Workflows</Heading>

<p>Here's the link again to the <a href="https://gist.github.com/Valerie-Freeman/171fd7e639fcd1f9129bc79144b5f5ea" target="_blank">Github Workflow Reference</a> that everyone must use during this project.</p>

<Heading size="5">Git Branching Strategy</Heading>

<p>As a team, review the <a href="https://dev.to/hardikchotaliya/the-ultimate-guide-to-naming-git-branches-best-practices-and-tips-21o6">The Ultimate Guide to Naming Git Branches: Best Practices and Tips</a> article. All branch names must follow the strategy that your team agrees upon.</p>

<ul>
<li><strong>Main Branch:</strong> Reserved for production-ready code.</li>
<li><strong>Development Branch:</strong> Acts as a pre-production branch where code is merged after thorough
testing.</li>
<li><strong>Feature Branches:</strong> Created for new features or bug fixes. They should branch off from and merge
back into the development branch once completed.</li>
<li><strong>Naming Conventions:</strong> Use descriptive names for branches (e.g.,
<code>feature/user-authentication</code>, <code>bugfix/login-issue</code>).</li>
<li><strong>Merge Requests:</strong> Require peer review before merging into the development branch.</li>
<li><strong>Keep Branches Updated:</strong> Regularly rebase feature branches with the current development branch to
minimize merge conflicts.</li>
</ul>

<Heading size="5">Comprehensive Pull Requests</Heading>

<p>As a team, review the <a href="https://www.pullrequest.com/blog/writing-a-great-pull-request-description/" target="_blank">Writing A Great Pull Request Description</a> article. When each teammate pushes a branch to be reviewed and/or approved by a peer, it is expected that a comprehensive, detailed description has been added to the pull request.</p>

<ul>
<li><strong>Descriptive Titles:</strong> Clearly state the purpose of the pull request (PR).</li>
<li><strong>Detailed Descriptions:</strong> Include information such as what changes have been made, why the changes
are necessary, and any specific things to look for during review.</li>
<li><strong>Link Tickets:</strong> Reference related ticket numbers.</li>
<li><strong>Small, Manageable Sizes:</strong> Keep PRs focused on a single feature or bug fix to facilitate easier
review.</li>
<li><strong>Code Review:</strong> Watch the <a href="https://www.youtube.com/watch?v=lSnbOtw4izI" target="_blank">How to Review a Pull Request in GitHub the RIGHT Way</a> video for how you should review a teammate's PR. Require at least one (preferably more) team member to review the PR for quality, standards, and functionality.</li>
<li><strong>Documentation Updates:</strong> Ensure any necessary documentation updates are included.</li>
</ul>

<Heading size="5">Ticket Creation</Heading>

<p>As a team, review the <a href="https://medium.com/nyc-planning-digital/writing-a-proper-github-issue-97427d62a20f" target="_blank">Writing a proper GitHub issue</a> article to learn the basics of how you should approach creating a ticket to describe work that must be done on the project.</p>

<ul>
<li><strong>Clear Titles:</strong> Use descriptive titles that provide a clear understanding of the task.</li>
<li><strong>Detailed Descriptions:</strong> Include all necessary details, such as requirements, expected behavior,
and acceptance criteria.</li>
<li><strong>Assignment:</strong> Assign tickets to relevant team members based on expertise and workload.</li>
<li><strong>Tracking Progress:</strong> Update ticket status as it moves through stages (To Do, In Progress, Review,
Done).</li>
</ul>

<Heading size="5">Definition of Done (DoD)</Heading>

<ul>
<li><strong>Code Completeness:</strong> Feature implementation is complete as per ticket descriptions and acceptance
criteria.</li>
<li><strong>Code Quality:</strong> Code adheres to coding standards, and does not introduce new bugs.</li>
<li><strong>Documentation:</strong> All necessary documentation has been updated or added. Review the <a href="https://www.makeareadme.com/">Make a README</a> site for tips on creating the team's README for the project.</li>
<li><strong>Peer Review:</strong> Code has been reviewed and approved by at least one other team member.</li>
<li><strong>Testing:</strong> Changes are fully tested, including unit, integration, and, where applicable,
end-to-end tests. Test coverage meets the team’s minimum threshold.</li>
</ul>

<Heading size="5">Continuous Integration/Continuous Deployment (CI/CD)</Heading>

<em>This section is only for sprints done at the end of the program.</em>

<ul>
<li><strong>Automated Builds</strong>: Use automated builds to ensure that the codebase is always in a buildable
state.</li>
<li><strong>Automated Testing</strong>: Implement automated testing as part of the CI pipeline to catch bugs early
and ensure software quality.</li>
<li><strong>Deployment Strategy</strong>: Define strategies for deployment, including blue-green deployments, canary
releases, or feature flags, to minimize disruption and facilitate rollback if needed.</li>
</ul>
</article>
}
6 changes: 3 additions & 3 deletions src/components/nav/StudentNavBar.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,13 +37,13 @@ export const StudentNavBar = () => {
{makeLink("/", "Overview")}
</li>
<li className="navbar__item">
{makeLink("/goals", "Core Skills")}
{makeLink("/assessment", "Capstones")}
</li>
<li className="navbar__item">
{makeLink("/assessment", "Capstones")}
{makeLink("/goals", "Core Skills")}
</li>
<li className="navbar__item">
{makeLink("/readme", "README Resources")}
{makeLink("/roe", "Rules of Engagement")}
</li>
{
isAuthenticated()
Expand Down

0 comments on commit f9d3596

Please sign in to comment.