After I started working, I learned a lot about how to write clean code and I always wanted to refactor/rewrite the whole app which gonna take a lot of effort and time of course. But every time I sat down, opened the old codebase, I hesitated, thought about it and told myself that it wasn’t worth it then continued my life.
do you have any personal project you always wanted to refactor/rewrite but still haven’t done or probably never will do so?
if you are interested, you can come see and compare the code of the kanji app and a new app I wrote recently:
https://github.com/Livinglist/Manji https://github.com/Livinglist/Hacki
The "second system effect" suggests that the rewrite will take a great deal of effort and for very little gain.
If I were in your position, I would direct my energies to new projects. There is far greater potential for expanding your experience and knowledge than by reworking something that you will shudder to look into too deeply.
As for my experience. I have shelved my early systems. For systems I wrote in the past 10 years, I have been refactoring every time I add a new feature or fix some edge case. By maintaining clean separation of concerns it has even been possible to swap out one module implementation with another.
Another consideration is: how much more work on this will you do? If you think that a rewrite will be good because you (and potentially others) will be modifying the code quite a bit in the future, then maybe it's worth while.
If it's a project you consider finished and would rather work on other things, then do that! If you really want to, you can always clarify design decisions (or lack there of) at the top of the README.
In another hand, if you are still maintaining this project, it can be interesting to refactor it and show your process doing it. It can be a great way to show actual useful skills for a future interview or, at least, train to do so before actually using it in a real production project.
Refactoring to a state of the art state while the project is still under development and shipped can be a valuable skill to train and show.