A collection of group projects that can be used to teach collaboration and real-life project management skills.
Each project is designed to be undertaken by 2-4 students, preferably within a week or two. It should rely mostly on skills they already have, but in some cases students will be encouraged to independently research solutions to problems or new tools they encounter along the way.
- Provide extra challenges for students seeking them
- Develop collaboration skills on real-life projects
- Transfer skills and knowledge back to the main class
- Require as little mentor involvement and upkeep as possible
- Build out and differentiate students' GitHub portfolios
These projects were devised in response to requests from students in the Glasgow class for more practical projects and an additional mid-week class. When determining what skills to teach, we should take care not to preempt future lessons in the course, and to prioritize skills which the students can teach each other later on, when the full class gets involved in projects.
Some of the skills we've identified that students can help teach each other on the graduate project:
- SASS, LESS and other CSS compilers
- Breaking a project into discrete components
- Coordinating with others on pull requests, code architecture, etc
- Familiarity with third-party libs (form controls, authentication, etc)
- Ensure work is shared in projects and one person isn't taking on everything.
- Encourage students to solve problems independently. Be the non-techy project manager who points out problems.
- Encourage students to refactor often, to develop good habits.
- Let students go down the wrong alleys a bit. It's good learning.
Below is a short list of projects that have been compiled. Please identify, conceive and add additional projects.
There is scaffold code for many of the projects, included in a dir named scaffold. These scaffold projects are designed to be cloned and then worked on collaboratively. They contain a basic structure and some initial code to get started.
These projects can be completed with only a basic understanding of HTML/CSS. They are intended to introduce working together on shared code, managing version control, and resolving conflicts.
- Changes on Messaging App - Implement requested changes to a messaging app.
- Changes on Shop App - Implement requested changes to a shopping app.
- Changes on FAQ App - Implement requested changes to a frequently asked questions app.
- Changes on Reviews App - Implement requested changes to a reviews app.
These projects run on the command line and can be completed using only the fundamentals of JavaScript, such as booleans, strings, numbers, arrays, functions and conditionals.
- Grade Report - Implement a grade reporting tool.
- Budget Management - Implement a budget management tool.
- Time Management - Implement a time management tool.
These projects can be completed using JavaScript client-side fundamentals such as fetch
and DOM manipulation, without any third-party libraries.
These projects can be completed without waiting for students to learn about React, Node or DB.
- Restaurant Website - Implement a design mockup in HTML/CSS.
- Luxury Vehicles Website - Implement a design mockup in HTML/CSS.
- Fashion Website - Implement a design mockup in HTML/CSS.
- Museum Website - Implement a design mockup in HTML/CSS.
These projects are designed to reinforce basic React skills and do not require knowledge of Node or DB.
- Payments - Build an app to track payments in multiple currencies.
- Countries - Build an app to learn about members' home countries.
- Dogs - Build an app to have fun with doggies.
These projects are designed to reinforce basic CRUD operations using Node/MongoDB.
- Progress Chart - Implement a small app to track your learning progress.
- Shopping - Implement a small shopping app with rating and comments.
- FAQ - Implement a small FAQ app with searching.
All images, mockups and other visual assets are copyright their respective owners. These assets are for educational use only. Please consult each project for licensing details.