It's a combination of spaced repetition learning and interview preparation.
The basic premise is that the better you perform on a challenge, the longer it will be before you reencounter it. If you forget, you will see it sooner.
Users can create and manage a table of questions, track their mastery, and schedule review sessions based on a space repetition algorithm.
Check it out: https://interview-flow.vercel.app/
I have more features in mind, but for speed, this is the initial feature set that I plan to release the application with.
You have overindexed on the "what" not "how" of software engineering. You are essentially creating a glorified flash card memorization system.
Not only that, you have created a website where the person has to fill in the topics, time, and check off boxes themselves. This isn't a interview preparation app. This is a productivity app that keeps track of what to study. Its really more similar to Jira.
There are 2 parts of being a software engineer: the software (coding, language, concepts, info) and the engineer (think, design, test, create, improve). I would argue you are an engineer first before you are a software engineer.
Consider what features you can add to help people execute faster and better on the information that they already have. How can they efficiently use this information to solve any problem they may receive? Where may they misexecute on problems? Why? How will knowing "NextJS" help them in their Google interview? Is it the most important thing for them to know?
There are plenty of platforms that sell "information" (I argue that bad information is worse than no information). But there are few, if any, platforms that train you on how to think, take effective action on the information you know, and how to work through problems effectively and efficiently in unknown and unknowable spaces.
You aren't paid for what you know. You are paid on how you act on it. Ideas are cheap. Execution is everything.
For a better treatise/explanation of where I am coming from, here is my doc
Be explicit about what your goal is. Do you want users, revenue, or learning? Or did you just build it purely for yourself to help with your own interview prep?
For most devs building side projects, the goal is to get users. In that case, the vast majority of projects are lacking when it comes to UX. It needs to be incredibly easy for someone to understand how and why they'd use your tool.
The reason most side projects fail is that this is traditionally not the "glamorous" part of engineering: you're not learning new algorithms or working with a cutting-edge API. You just need to do the hard work of writing good copy, reducing button clicks, color-coding the UI appropriately, etc.
For your app, I'd really focus on the usability. A few things come to mind immediately:
Thank you for the feedback, Edbert. You're right, this app is more focused on managing interview preparation material like DS&A.
To be honest, all the information needed for interview preparation is already available, from resources like AlgoExpert, NeetCode, LeetCode, Educative, Grokking interviews, and various YouTube channels.
What I aim to do is build a platform specifically designed for managing interview preparation. For instance, let's say you have a technical interview scheduled with Meta in three weeks, and you have already gathered interview prep material from sources like Glassdoor and the recruiter. With this platform, you can add all those challenges, set your interview day, and start working on them using your preferred DS&A platform. As you work on these challenges and reflect on your attempts, you will quickly identify areas where you struggle and address those weak spots before the interview day.
To make it easier for users to get started, I am considering creating templates that include all the exercises they need to work on, such as a Google interview template, a Blind 75 template, an AlgoExpert template, and more.
Thank you for the feedback, Rahul. It started with building something for myself and quickly became "other people could use this as well.”
Now, my focus is on making it extremely useful for myself while also encouraging others to sign up and use it.
And on top of that, it’s fun to work on a side project.
I like your idea of having a link to an exercise on LeetCode or any other platform where the exercise lives.
As someone who has built many, many side projects to great success (3.5 million+ users, 5 apps with 100k+ users), many of them utility apps like yours, the important thing to remember is this: People are lazy.
When it comes to software design, this usually boils down to: How can I make getting value from this product as fast as possible, requiring the minimal amount of clicks?
It takes a lot of effort to incorporate a new app into your repertoire - There are so many apps out there and not enough time. Right now your app requires a lot of clicks:
In order to fix this, it's unfortunately going to take a good amount of work:
That being said, not every side project needs to get a ton of users (that's just what you need to do if your goal is to have this look impressive on a resume). Side projects are also useful for raw learning as well. As is, the tool's UI looks very clean, better than 90% of side projects I've seen. This is something you should definitely be proud of 😊
To learn more about better executing your side project, check these out:
Based on initial feedback from Edbert, Rahul, and Alex, I made a few changes to the prototype.
The first major change I implemented was the creation of a dashboard layout to improve application navigation.
I added a slide-in navbar with pages for backlog, sprints, calendar, templates, and reports. Initially, the backlog and sprints pages will be the primary focus.
The backlog page includes a preset of exercises from LeetCode, allowing users to create interview sprints without wasting time on exercise creation. Each exercise in the backlog links to a specific exercise on LeetCode. If users don't find the exercise they want to practice, they can create it.
Since users may be preparing for multiple interviews, they can create multiple sprints and add the questions they need to practice for each interview.
To enhance user-friendliness, the tables are collapsible. And the website is also mobile-friendly.
Additionally, there is a sprints page for managing all interview sprints.
Check it out: https://interview-flow.vercel.app/