I’ve previously written about doing tutorial based projects and how it’s not a bad thing.
What can happen, is that your project looks like everyone else’s who did the same tutorial.
Again, this is not a bad thing.
But you can take your learning a step further by adding features onto those projects.
Here are some ideas to get you started
- Automatically deploy changes each time a git repo is updated
- If a user can create items as part of your project, can they edit them as well?
- Migrate your backend database to Postgres and host on Heroku.
- Automatically deploy your frontend to Netlify or Vercel.
- What happens if a user tries to navigate away from a page while they were filling out a form field?
- What if there is no result from an API query?
- Are there any form fields are required or nullable?
- What happens if a user enters a string when a field is only meant to access numbers?
- A blog post, video, tutorial, etc on how you built a new feature or solved a problem.
- Give users the ability to login with Google, Facebook, etc
- What does a user see if there is a slow connection? Do they see a blank screen or some content?
- Store changes in the browser with a service worker until database access is restored
- If a user is logged in, should they be able to view assets created by another user?
- Take a look at your code and see if there are opportunities to DRY it up.
- Incorporate arrow functions, swap
const, incorporate asynchronous functions.
TODOcomments from deployed code.
- Better rendering for mobile, dark/light mode toggle, make sure it’s accessible, etc.
- Are there any risks of exposed API keys or sensitive user data?
- Is CORS enabled?
- Write test to validate functions are outputting the expected results.
- A uses or about page can tell the story of how you build your project, technologies used, creative process, etc.