There are three projects in this course, from simple to complex.
All project repositories must be owned by the course Github organization. You can do this in two ways:
- Go to the course organization page (link on Canvas), and click New Repository.
- Create a repository as usual, but select this course as the owner.
Warmup Project
This is a two-week project, with in-class demos at the end of the first and second week. The purpose of this project is to learn how to use
- the tools and technologies, i.e., HTML5, React, Git and Github, a key-value database
- agile techniques for product development, i.e., slices, users stories, backlogs
- agile techniques for team developement, i.e., swarming, pairing, and retrospection
Since this first project is heavy on learning, the team should base it on an existing tutorial. A few are listed below
- Mern Stack Crud App...
- ReactJS Todo app tutorial with Redux
- Creating your first MERN stack application
The team can pick any tutorial as a basis, as long as
- it's up to date, i.e, 2017 or later
- is React, not React Native
- has a persistent data store, e.g., MongoDB
- does not use a WYSIWYG app builder framework
Please post a brief description and link to the tutorial you plan to use on Piazza, if it has not already been posted there. That will let other students see that option, and I can check to make sure there's no problems with it.
In the first week, the team needs to
- pick the tutorial they want
- create a team repo in the course github organization
- the project name should be your team name plus your app name, e.g., "Blue To Do"
- have at least two swarming sessions to implement and demo the first version of the app
While learning and working on the app, the team needs to brainstorm some new useful or fun functionality for the app.
- Explain this new functionality with a four-panel storyboard. This deliverable is due first.
- Implement the functionality in swarms and pairs.
- Present this for the Project 1 final demo.
Web App Project
This is a four-week project, with in-class demos at the end of the first and fourth week. The nature of the app is completely up to the team, as long as it makes sense as a web app. The purpose of this project is to learn how to use
- technologies for more complex applications, i.e., Redux for state management
- technologies for local data persistence, e.g., MongoDB, mongoose, Compass, Stitch
- tools for unit and system testing web applications, e.g., Jest
- agile development techniques for test-driven code development
The first deliverable is a four-panel storyboard. The first demo is a week later. The final demo is three weeks later. See Canvas for due dates.
Mobile App Project
This is a four-week project, with in-class demos at the end of the first and fourth week. The nature of the app is completely up to the team, as long as it makes sense as a mobile app. The purpose of this project is to learn how to use
- technologies for cross-platform JavaScript-based mobile apps, i.e., React Native and Expo
- cloud-based persistence, using Firebase RealTime
- tools for unit and system testing mobile applications, e.g., Selenium and WebDriver
As with Project 2, you start with a four-panel storyboard, and there are two demos.