Skip to content

Commit

Permalink
Merge branch 'code-differently:main' into Lesson20
Browse files Browse the repository at this point in the history
  • Loading branch information
NatayaP authored Apr 22, 2024
2 parents 53ddd13 + 8fcb0d1 commit 1d57265
Show file tree
Hide file tree
Showing 5 changed files with 138 additions and 11 deletions.
94 changes: 94 additions & 0 deletions capstone/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
# Lesson 24

## Capstone Project

For the next two weeks, you and your team will ideate and implement a working software system. You will have the opportunity to apply the skills that you have learned to solve an interesting problem or contribute a meaningful tool that improves our lives.

### Technical Requirements

Your project submission must include the following elements:

* Must have a working front-end that interacts with a back-end web service to retrieve and persist data.
* Your app must be publicly accessible.
* The system must incorporate one third-party API.
* All code must be kept in a public GitHub repository.
* Your repo must include a README with the following elements:
* The team
* Screenshot
* A description of the app
* Demo link
* Installation instructions
* Known issues
* Roadmap features
* Credits
* Your team must track issues, bugs, pull requests, and features on GitHub.
* It is **HIGHLY** recommended that you maintain a clean `Main` branch and only merge changes via pull requests (we've been using squashed merges for the main repo to simplify commit history). Don't forget to use [Conventional Commits][conventional-commits-link].

### Important Milestones

To ensure the timely completion of your project, you will need to complete the following milestone tasks.

<table>
<thead>
<th>Milestone</th>
<th>Date</th>
</thead>
<tbody>
<tr>
<td>Submit your ideas via <a href="https://forms.gle/Z6Ju89xGyd6F7arG8">this form</a></td>
<td>Tue, April 23</td>
</tr>
<tr>
<td>Update your meeting notes document</td>
<td>Daily</td>
</tr>
<tr>
<td>
Obtain project sign-off from instructor/TAs<br>
<a href="https://calendar.google.com/calendar/u/0/appointments/schedules/AcZssZ1dD0ruj64FcykMfPBo7qQaV6AqZ58O7ON8Z3ld-xwNEbFmy0JGyLuwIwxJZjoGoEuz1U9bRZqu">
Schedule a review meeting here
</a>
</td>
<td>Wed, April 24</td>
</tr>
<tr>
<td>Begin implementing your designs</td>
<td>Fri, April 26</td>
</tr>
<tr>
<td>
Practice presentation sessions<br>
<a href="https://calendar.google.com/calendar/u/0/appointments/schedules/AcZssZ1dD0ruj64FcykMfPBo7qQaV6AqZ58O7ON8Z3ld-xwNEbFmy0JGyLuwIwxJZjoGoEuz1U9bRZqu">
Schedule a run-through meeting here
</a>
</td>
<td>Wed-Thurs, May 1-2</td>
</tr>
<tr>
<td>Presentations due</td>
<td>Thurs, May 2</td>
</tr>
<tr>
<td>Final presentations</td>
<td>Fri, May 3</td>
</tr>
</tbody>
</table>

### Helpful Resources

Here are some links to tools and templates that can help you work together effectively.

* [A Short Guide to Effective Daily Standups (Nave)](https://getnave.com/blog/short-guide-daily-standups/)
* [Team Meeting Notes template (Google Docs)](https://docs.google.com/document/d/1rL-Zm2w0hABuGkIMSPzmXcJHDQxmIeA-mlipt8kDA9E/edit)
* [Crafting Effective User Stories: A Guide to Good and Bad Versions (Visual Paradigm)](https://guides.visual-paradigm.com/crafting-effective-user-stories-a-guide-to-good-and-bad-versions/)
* [Third-party APIs (MDN)](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Client-side_web_APIs/Third_party_APIs)
* [GitHub Flow (GitHub.com)](https://docs.github.com/en/get-started/using-github/github-flow)
* The Software Engineer's Guidebook, Chapter 10, "Tools of the Productive Software Engineer."

### Academic Integrity

Please refer to the [Academic Integrity][academic-integrity-link] section of the syllabus regarding the use of third-party code and resources that you have used for your project. Give credit to where credit is due!

[conventional-commits-link]: https://www.conventionalcommits.org/en/v1.0.0/
[academic-integrity-link]: /syllabus/README.md#academic-integrity
4 changes: 2 additions & 2 deletions lesson_22/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
## Lecture Resources

* [Writing Markup with JSX (react.dev)](https://react.dev/learn/writing-markup-with-jsx)
* Guides for [React Query](react-query-link), [React Router](react-router-link).
* Guides for [React Query][react-query-link], [React Router][react-router-link].
* [Javascript Promises vs Async Await EXPLAINED (in 5 minutes)](https://www.youtube.com/watch?v=li7FzDHYZpc) - YouTube
* _[Optional]_ Creating a new website using [Vite](https://vitejs.dev/guide/).

Expand All @@ -13,7 +13,7 @@
* Complete the [Introduction to React](#introduction-to-react) assignment.

## Introduction to React
This exercise will give you hands-on experience with the React framework and supporting tools to enhance a dynamic front-end application that communicates with a backend API. We will need to leverage [React Query](react-query-link), [React Router](react-router-link), and [Vite](vite-link) tie everything together.
This exercise will give you hands-on experience with the React framework and supporting tools to enhance a dynamic front-end application that communicates with a backend API. We will need to leverage [React Query][react-query-link], [React Router][react-router-link], and [Vite][vite-link] tie everything together.

### Starting the servers

Expand Down
3 changes: 1 addition & 2 deletions lesson_22/api/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@
"@types/express": "^4.17.21",
"@types/node": "^20.12.5",
"cors": "^2.8.5",
"express": "^4.19.2",
"@code-differently/types": "*"
"express": "^4.19.2"
}
}
5 changes: 5 additions & 0 deletions lesson_24/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Lesson 24

# Homework

* See [Capstone Project](/capstone/README.md) for details.
43 changes: 36 additions & 7 deletions syllabus/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

### Anthony D. Mays (@anthonydmays)

Anthony is a software engineer with over 23 years of experience across finance, ecommerce, enterprise consulting, and data visualization & analysis. Before becoming a full-time entrepreneur via his firm Morgan Latimer Consulting, he spent 8 years at Google where he became a Senior Software Engineer.
Anthony is a software engineer with over 23 years of experience across finance, e-commerce, enterprise consulting, and data visualization & analysis. Before becoming a full-time entrepreneur via his firm Morgan Latimer Consulting, he spent 8 years at Google where he became a Senior Software Engineer.

[![Website][website-badge]][instructor-website]
[![Github][github-badge]][instructor-github]
Expand Down Expand Up @@ -47,7 +47,7 @@ The course will feature required reading from the following selection of books.
| Abbreviation | Title |
| ------------ | ------------------------------------------------------------------------------------------ |
| CC | Code Complete (2nd Edition, Microsoft Press) |
| CODE | Code: The Hidden Language of Computer Hardward and Software (2nd Edition, Microsoft Press) |
| CODE | Code: The Hidden Language of Computer Hardware and Software (2nd Edition, Microsoft Press) |
| HF | Head First Design Patterns (2nd Edition, O'Reilly) |
| PIE | Programming Interviews Exposed (4th Edition, Wrox) |
| SEG | The Software Engineer's Guidebook |
Expand All @@ -70,9 +70,8 @@ Throughout the course, we will use the following tools for most assignments unle
Regular course work and homework assignments will be provided throughout lessons. Though varied, the assignments will generally consist of:

1. Reading assigned chapters from course books.
2. Submitting reading notes for assigned online articles and videos
3. Completing one or more coding exercises to be submitted on Github or by email to instructor.
4. Completing pop quizzes and tests
2. Completing one or more coding exercises to be submitted on Github or by email to instructor.
3. Completing pop quizzes and tests

## Course schedule

Expand Down Expand Up @@ -172,10 +171,40 @@ Regular course work and homework assignments will be provided throughout lessons
<td>
<b>Building application systems</b>
<ul>
<li>Software Development Life Cycle</li>
<li>Collaborative software engineering</li>
<li>Tools of the trade</li>
</ul>
</td>
</tr>
<tr>
<td align="center" style="vertical-align: top">09</td>
<td>
<b>Capstone project (Week 1)</b>
<ul>
<li>Collaborative software engineering</li>
<li>Applying principles learned throughout the course</li>
</ul>
</td>
</tr>
<tr>
<td align="center" style="vertical-align: top">10</td>
<td>
<b>Capstone project (Week 2)</b>
<ul>
<li>Collaborative software engineering</li>
<li>Applying principles learned throughout the course</li>
</ul>
</td>
</tr>
</tbody>
</table>
</table>

## Academic Integrity

Students are absolutely encouraged to leverage learning resources outside of official course materials to enhance understanding and complete assignments. This includes use of tools like forums, search engines, or Large Language Models (LLM) such as Open AI ChatGPT, Google Gemini, and GitHub Copilot for example.

Generally speaking and unless otherwise stated by the instructor, students are also allowed to work together to collaboratively problem solve and come up with solutions.

That said, all students must credit provide credit for anything they did not generate themselves. This includes code, documentation, quotes, multimedia items used for presentations, and etc.

Any use of materials without providing proper credit will be considered cheating and will result in disciplinary action.

0 comments on commit 1d57265

Please sign in to comment.