Planning Your Escape from Tutorial Hell
/ 2 min read
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
Automation
- Automatically deploy changes each time a git repo is updated
CRUD operations
- If a user can create items as part of your project, can they edit them as well?
Deploy
- Migrate your backend database to Postgres and host on Heroku.
- Automatically deploy your frontend to Netlify or Vercel.
Error handling
- 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?
Form validation
- 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?
How To
- A blog post, video, tutorial, etc on how you built a new feature or solved a problem.
oAuth
- Give users the ability to login with Google, Facebook, etc
Offline access
- 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
Permissions
- If a user is logged in, should they be able to view assets created by another user?
Refactor
- Take a look at your code and see if there are opportunities to DRY it up.
- Incorporate arrow functions, swap
var
instances forlet
orconst
, incorporate asynchronous functions. - Remove
console.log()
,debug()
andTODO
comments from deployed code.
Styling
- Better rendering for mobile, dark/light mode toggle, make sure it’s accessible, etc.
Security
- Are there any risks of exposed API keys or sensitive user data?
- Is CORS enabled?
Tests
- Write test to validate functions are outputting the expected results.
Uses
- A uses or about page can tell the story of how you build your project, technologies used, creative process, etc.