When thinking about potential capstone ideas, there are a couple ways you can approach your brainstorm to identify what your project goals are.
One way is to approach first with the concept in mind. This is an approach you'd use if you already have idea or a problem in mind that you want to solve. Depending on the complexity of the concept, you may want to use as much technology you already know, so that you get to the nitty gritty details of the problem you want to solve. This usually means using Rails for at least some portion of your capstone project.
When you approach your capstone concept-first, the most important thing to consider is MVP. If you have a really great idea, it's easy to get carried away in attempting to implement more features than is reasonable within the time frame. Focusing on the minimum set of features you can implement is the best way to know if you can meaningfully solve this problem in the time allotted.
Things to consider when choosing a concept
- Make a list of anything you see as a problem that you want to solve
- ex: I want everybody in Flint, MI to have access to clean water. I want low-income persons to know what resources are available for them to attend higher education institutions. I want to make it easier for working parents to find last-minute child care in the case of an emergency.
- After writing a list of problems, write as many ideas of solutions you can think of. Try doing 5-10 for each problem.
- Research other similar ideas and data sets that may exist
- Don't turn down ideas because you think something like it may already exist
- Consider all ideas initially, no matter how outlandish
Another approach is to start with the technologies in mind. This approach is good if there isn't a specific idea or problem you want to solve, but rather you want to focus on technology as your primary learning goal. When you focus on diving deeper into existing technologies or learning brand new technologies, you need to have a smaller set of features than if you were to use a majority of technologies you already know.
Things to consider when choosing a tech stack
- Are the technologies well-documented?
- Are there an active community around them?
- If there is more than one version, which will you choose?
With either approach, you must define your learning goals to ensure you stay on track with what it is you are trying to get out of this project. Identifying your MVP is important for both approaches, though it can be more important in maintaining a reasonable scope with the concept-first approach.