The Capstone Project 🎉

The last week of the program is capstone week!

During this week, students will be given the opportunity to learn a new skill and/or build upon your existing skills in the form of a capstone project.

Before you begin, note that this will be your pièce de résistance and your goal will be to make it AMAAAAZIIIING. These will be the projects that you show off to employers, so really throw yourself into it.

That said, you will be given two options in order to pursue your capstone project:

  • Option A: Capstone Modules on MyGA
  • Option B: Building a new Project using a new tech Stack/technology or deeper discovery of existing skill



Option A: Capstone modules on MyGA:

To better prepare students for specific career paths, GA has produced several, week-long, self-guided capstone modules. These modules, hosted on the myGA learning platform, direct students through independent study of a sub-field of Software Engineering, culminating in a project with specific requirements.

All projects involve refactoring or adding new features to a previous, existing application, and are timed to include both learning and project completion within a week of full-time study.

There are two intended use cases for these modules:

  1. Students can choose to complete the capstone module project as their final, capstone project during the course.

  2. The modules are designed to be completed within a week, so students would begin the module at the end of Week 11. 

Students will also maintain access to these modules after graduation, and can use them to continue their studies post-course, prepare for job interviews, etc.

If you'd like to check these out, they are now available in your MyGA Dashboard.




Option B: Project Using New Stack/Technology

If you decide not to complete one of the capstone modules on MyGA:

The capstone modules are completely optional if you decide to wait until after graduation to complete them.

Instead you could build a new project and can use any stack. You have to include at least one new piece of technology such as a new 3rd party API, CSS framework … etc.

Some students might decide to learn a whole new language like Python of Frontend Framework like Angular or Vue.

It's time to shoot for the stars and build an extraordinary capstone project for this course!

Your capstone project should be an app that

  • Has an idea and technical stack (including database and server) that will be approved by the instructional team before you begin
  • Is hosted somewhere on the internet



Option B Technical Requirements

Mandatory to pass:

MVP - minimum viable product
  • A git repository (or repositories) hosted on Github, with a link to your hosted project, and frequent commits dating back to the very beginning of the project. Commit early, commit often

  • At least one Github commit per day

  • Be deployed online and accessible to the public

  • Have a link to your hosted working app in the README.md file in each of your github repos

  • Due to the open-ended nature of this capstone project, each project will have their own additional MVPs that are agreed upon by the instructional team

  • Demonstrate that you can teach yourself something new, use a technology that you haven't used in class NOR on a previous project

    Expand for a non-exhaustive list of examples:
      - 3rd party api
      - CSS - Styled Components
      - CSS - CSS-grid
    
      - React - integrate Redux
      - React - integrate React Router
      - React - Typescript
      - React UI library: React Materialize, React BootStrap etc.
      - React Jest/Enzyme testing library
    
      Module Bundlers:
      - Webpack - non-rails app
      - Webpacker - for rails app with react
      - Gulp
    
      Other Front Ends:
      - React Native/Expo
      - Vue
      - Angular 7
    
      Other Back Ends:
      - Python/Django Rest Framework
      - Python/Flask
      - Ruby/Sinatra
    
      Authorization:
      - Authorization using JWT (JSON Web Tokens)
    
      Other Hosting:
      - Host on Digital Ocean
      - Host on AWS
      - Host on Netlify
    
      - Other Libraries:
      - Lodash
      - Google Maps
      - Moment.js
      - jQuery UI
      - Chart.js
      - D3
    
      Other Databases
      - Firebase
      - Redis

Suggested Ways to Get Started

Click Here to view a list of ways to get started
  • Wireframe Make a drawing of what your app will look like on each page of your application (what does it look like as soon as you log on to the site? What does it look like once a user logs in, etc.).

  • Break the project down into different components (data, presentation, views, style, DOM manipulation) and brainstorm each component individually.

  • Create your user stories

  • Create a Trello board and break down the user stories into cards

  • Use your Development Tools (console.log, inspector, alert statements, etc) to debug and solve problems

  • Work through the lessons in class for help and inspiration! Think about adding relevant code to your application each day - you are given 5 days so that you can work on it in small chunks, COMMIT OFTEN. We will be looking at your commit dates and comments are part of your scoring.

  • Commit early, commit often. Don’t be afraid to break something because you can always go back in time to a previous version.

  • Consult documentation resources (MDN, jQuery, etc.) at home to better understand what you’ll be getting into.

  • Don’t be afraid to write code that you know you will have to remove later. Create temporary elements (buttons, links, etc) that trigger events if real data is not available. For example, if you’re trying to figure out how to change some text when the game is over but you haven’t solved the win/lose game logic, you can create a button to simulate that until then.



Also, remember: a technical demonstration of your project which:

  • Is ~5-10 minutes in length
  • Shows off the features of your project
  • Be sure to talk about the new thing you taught yourself
  • Explains the technical details
  • Explains the technical challenges
  • Explains which improvements you might make



Summary

In closing if you have any questions regarding these options, feel free to reach out to your instructional team for advice.

Good luck!

Copyright © General Assembly 2022

Created by DanielJS