Now that you've learned a core skill, you're ready to build an amazing project!
The capstone project is one of the most important pieces of landing the perfect LaunchCode apprenticeship. This project will be one of the biggest ways that the LaunchCode evaluation team will verify that you're job-ready, and it should be something that you're proud to show off to a potential employer in an interview. So don't skimp on the time, energy, and thought that you put into this!
This is your opportunity to be unique, innovative and creative. This should be project that you conceived on your own and executed from start to finish. If you plan to use a project that you worked on with a group or at a bootcamp class, please come to the interview prepared to articulate the specific functions that you designed and programmed. We look for for projects that:
- Demonstrate marketable skills: You have strong foundation in one of the languages from the skills milestone, and the related tools and best practices.
- Demonstrate your ability to learn new things: You've gone beyond your initial learning to teach yourself something new. Maybe you learned Angular.js for your front-end web project, or customized the UI components of your mobile project.
- Demonstrate utility for a company: In order to land that perfect job, a prospective employer will want to know that even as a relatively new programmer, you're capable of creating high-quality work for them.
Put your project up in GitHub. This will make it accessible for others to view, and will show off all of hard work you put into it as you rack up commits!
Here are some project ideas, along with potential features to get you started. You don't have to choose one of these; in fact, if you have another idea that you're passionate about, go for it! These project ideas are meant to give you an idea of the type and scale of projects that LaunchCode is looking for, along with giving practical project ideas that any learner at this level can tackle.
Regardless of the project you tackle, your project should:
- Build an application entirely yourself, or nearly so. If you use “starter code" or a group project, you need to go well beyond what's already there, and be able to clearly articulate what you built yourself versus what was built or provided by others.
- Include 3-5 killer features. The example projects will give you an idea of what constitutes a solid feature. Adding a new button to your web project? Probably not significant to count as a feature. Adding user login to your project? Yep, that's great!
Before getting started, you have one last skill to pick up: databases. You don't need to become a master of relational data, but you should know the basics, and be able to write simple queries. Learn the following.
- Learn the basics of relational databases
- Creating tables and users
- User permissions
- Simple queries using: SELECT, INSERT, UPDATE, DELETE
- Data types
- Using a WHERE clause to filter results
- Primary and foreign keys
Your back-end web project should demonstrate all of the great skills that you've learned to-date, along with a few new ones that you'll learn along the way.
You'll most likely be building an app with a front-end as well (unless you're building just an API), so you'll need to familiarize yourself with HTML and CSS a bit. Use w3schools as a reference, and remember that your front-end doesn't have to be flashy or well-designed, just functional. Spend most of your time and energy on the back end, where you can really show off your skills!
Be sure to put your project in GitHub right away, and regularly commit!
- Create database and define tables
- Required: database (e.g. MySQL or Postgres)
- Optional: host database on a web server (e.g. AWS, Azure)
- Create data models (i.e. classes) and connect to database
- Required: with JavaScript, Python, Java, C#, PHP or Ruby
- Required: For Java and C#, use an object relational mapping (ORM) package such as Hibernate (for Java) or ADO.NET Entity Framework (C# / .NET)
- Optional: use frameworks for your chosen language above -- Rails for Ruby, Django for Python, CakePHP for PHP, etc.
- Create basic User Interface (UI)
- Required: HTML and CSS
- Optional: JavaScript
- Add functionality (i.e. CRUD, user management and reporting)
- Required: JavaScript, Python, Java, C#, PHP or Ruby
* CRUD functionality: create, read, update, delete items and other objects
* User permissions anagement: Admin full CRUD, Manager CRU, User R
* Feature 3: Reporting
The time to complete your project will may vary quite a bit from our estimate of 150 hours. You should focus on making a great product, and on hitting the objects listed above. In addition, as you go through the LaunchCode application process, our evaluation team may have some suggestions on how to make your project even better.