We're giving the final project prompt early! Before we jump into it, let's clarify what this means!
The project prompt is given early so that you can all have additional time to work on it. We are still going to have class next week (week 11), then week 12 will be our regularly scheduled project week. Week 11 will also have morning time to work on portfolios along with a little hackathon during the day later in the week.
That said, NO MORE HOMEWORK.
Never ever ever never ever ever never never ever again.
alright... let's move on to the project prompt:
Woohoo! It's time to show the world what we got! We've spent 10 weeks honing our skills in web development, learning everything from basic html and jquery to advanced full-stack websites with React and Node/Rails. This is an amazing set of tools. Feels like just yesterday you were all wee-babe's wondering what the command line was for ๐ญ.
The final project is all about freedom to apply these skills to make ANYTHING YOU WANT. Seriously... ANYTHING. And you can do these projects in groups of your chosing or on your own. This is exciting, but often times the freedom of choosing anything can lead to decision-making paralysis.
Whether it be for something like a homemade food, handmade furniture, or a kid's fingerpainting - passion breeds success. Our applications are the same - build something from the heart, something expressive, something that solves a problem you believe in, something that uses new tech you want to master, etc. Do some soul searching - what motivates you? Build a project around that motivation.
The capstone project should be at the front and center of your portfolio. The thing that future employers will see, the thing you want to talk about at interviews, the thing that represents you as an individual. When you are deciding on your project, consider how your project idea represents you as a developer.
There are a lot of things to consider here.
You can literally build anything you want. We'd suggest using React on your front end with a Rails API for a few reasons:
- It's an emerging industry standard: it's a solid way to show that you are privy to emerging technology in the web development space. A LOT of companies are using this stack now and for good reason:
- React is beautiful - it allows you to build fluid, fast one-page applications.
- Rails is fast and secure - it allows you to develop new API's and new features quickly.
But you seriously don't have to! It's a soft suggestion. By all means feel free to experiment.
Using something you know is often the best course because then you can spend more time building and less time reading documentation, reading tutorials etc. But if you want a challenge feel free to push your limits a bit. If you want to, here are some new pieces of tech you can explore:
Easy:
- Add data visualization with d3, Chart.js, React Google Charts, etc
- Create a native app with Electron.js (like Slack, VSCode, Postman and more)
- Use the Watson API to do text analysis, emotional analysis, etc.
Medium:
- Add a slackbot interface for your application.
- Use websockets to add a chat feature to your app
- Use 3JS to create 3d renderings in javascript
- Use SASS for your CSS - giving you variables, functions, and nesting in CSS
- Use SQLize with Express - ActiveRecord for your javascript servers
- Use React Native to build a React App that runs on your phone
Hard:
- Use node on a Raspberry Pi to create javascript controlled robots
- Use a new front-end library like Vue, Angular or Elm instead of React
- Build a server in a new language like Python or Go
Come up with some ideas and start playing around with them! This isn't a formal project proposal, but a couple paragraphs about some ideas you have. Add your ideas as an issue to this repo.
As long as some ideas, be sure to include any additional details about your project. For example, if you want to work with a friend be sure to mention it here. If you want to try out a new tech, mention it here.
Remember to have some ideas you are excited about! If you aren't excited to build it, then you should pick something different. A good project idea is one that you can't put down, something you want to do for fun.