Full-stack productivity app (in the future will have AI integration)
Full-stack productivity app (in the future will have AI integration)
Been a long time since last devlog.
Well, I have no idea what I’ve done, but I know what I was trying to do…
I was not satisfied with the way that Streaks were hard-coded (and I had to create A LOT of things on code if I wanted to have a new Streak), so I decided to change this… Well, you can see the results in the attachments.
Lots of errors, but I successfully added a StreakColors object, which should allow me to have just ONE instance of Streak, which will be defined in the back-end of the project, and it will be used in both ends.
This is gonna make everything easier, since whenever I wanna edit a Streak, I just have to find one exact file and change there.
It’s a work in progress tho… Currently the app is broken and I need some sleep (dev logging at 4:10 am btw).
Log in to leave a comment
First I have to explain that the DEMO is not even close to be perfect (I know there are some features still to be implemented, and I will implement them).
This was my first full-stack project and I used it as a form of learning. Note that habits config is not changeable for now and it’s coming from back-end (which means it has default values of habitValue>0 = streak). Streaks are working tho. You can log your doings everyday and it will increase. The Duolingo/Leetcode Streaks look for your profile based on the username you defined creating your account (yeah, I’ll change that eventually). Goals aren’t being created yet, but they have their own type on front and back, it’s gonna be implemented soon. Daily Thoughts are saved (and if thoughts.length()>100, streak is increased) forever, even though there isn’t a way to check your old thoughts yet. Monthly progress works and is saved forever as well, but I haven’t completely tested it (should work fine tho).
I’m new to using some technologies like Vercel or Render (which are the ones I’m using to host the demo) so it’s possible that something isn’t working… I’ll do my best to have the demo working greatly tho.
Just some things for deployment on Vercel and Render
Log in to leave a comment
Some visual basic things just to visualize data.
Not even close to be 100%, but I really like how it’s looking!
Also, solved a little problem with Planning Streak, which wasn’t being updated (cuz it’s not added on the Daily Log) so I added a verification when you save planning. If it’s big enough, the streak is updated.
Log in to leave a comment
I tried confirming Streaks system was working and then I found a bug. Basically the Streaks were being saved with a “doneToday = true” and it was never changing. I implemented a check if the streaks were updated today and if they aren’t, then all of them get a “doneToday = false”. Really simple but I thought I already had this verification so it took me a little time debugging to figure it out.
Uuhh Log page is looking good, Streaks now have color-identity (instead of color changing based on number of consecutive days) and goals are now being rendered.
Edit Goals was added and it sends a requisition with a temp var that’s created based on now goals + created/changed goals.
Log in to leave a comment
Duolingo and leetcode service now working (ignore the fact that they’re duplicate)
Log in to leave a comment
Streaks logic (counter and reset) already working and Daily Thoughts auto saving as well.
Log in to leave a comment
Finished creating all endpoints and pointing them to the correct data (for testing purposes I was throwing a not found on any endpoint that I hadn’t totally configured yet)
Creating those endpoints took that much time cuz some problems showed up when I began working on them, but nothing I couldn’t handle (even tho there’s a lot of hard-code on back-end………………)
Log in to leave a comment
Log page officially done.
There are a few little problems to solve, but most of them are math-related or ux-related and I will be getting to them in the future.
Log in to leave a comment
Made some changes on log page widgets and added a new input type (hour/minute)
also solved a back-end problem with Lists that was creating a new object in repository every time I logged something (and it was completely silent cuz getLog would always return the most recent object so…)
now everything is solved and back-end and front-end are working together in almost everything.
Log in to leave a comment
Created Log Page
Added Daily Data to back-end
Added Log Entry to back-end (receives the entire log, compares what’s new and throws into the Repo)
Added Get Log to back-end (which should send to front a object containing all data from that day (or any day requested, which should be useful whenever user wants to look at his history)
All other needed requisitions were created and have their respective objects of return, just need to link it with the repos.
A new Context was created in front-end, which contains all content data that user might need and makes it accessible to any page. This part was very tricky to code cuz I didn’t really know what a context meant (I hate front end) but once it was done, using data received from back became very easy.
Besides, I integrated a AI service to send a insight about user data or something. Just felt like it’d be cool.
Log in to leave a comment
UX/UI improvements!!!!!!!!!
I spent most of time organizing divs, but everything is very pretty!!
divs configured:
Log in to leave a comment
No design changes, I have just fixed some problems with token authentication.
Basically, the token I’ve received when I first logged in just expired and the front-end wasn’t ready for it. It broke cuz didn’t know what to do cuz back-end was returning a empty string as response when the token was invalid.
First I changed some of the front-end to handle 401 (unauthorized) responses, making it automatically logout the user. Then another problem came up: signing-in would be a fucking UX nightmare cuz every time you mistyped your password It’d reload the page (that’s my implementation of logout the user, ok?).
I solved it by adding some verifications for responses coming from back-end (and I had to structure again the responses cuz I realized they weren’t following the standards).
At last I created a loading animation (for when front-end is verifying if back-end is up and getting the data) and I created a Error page that you’re redirected if the back-end is off cuz I tried opening dashboard with back-end off AND IT WORKED BUT THE PAGE BROKE SO…….
anyway, really productive but no visual changes.
Log in to leave a comment
I’ve been away from home and coding on a different machine, which is why it’s been a while since the last devlog. I basically spent 3 days coding in short 1-hour blocks, and it all added up to about 10 hours of work.
Changelog:
Log in to leave a comment
Designed parts of the dashboard’s front-end and created A LOT of widgets.
I was just talking to a friend about being excessively perfectionist in this project… It’s not a good thing honestly. But I’m glad it is paying off: the back-end is sending data and the front-end is displaying it really well (and pretty if you ask me).
Even though I’m getting a lot of references from the internet an AI models, I’m making sure to code EVERYTHING myself. This is a project to learn and I’m honestly happy with my progress. I’ve never made a TypeScript project b4 and this is turning out to be awesome to work with.
Log in to leave a comment
I didn’t even notice that it was that much time…
Well, I’ve designed the login-page and register-page completely. It’s looking good. Made some verification logic so it works well (and UX is shaaarp, I made sure of it). Also began customizing the dashboard, putting some widgets there.
The back-end was reworked (I don’t remember if I wrote about it in the last devlog. If I did, ignore this) to fit the login/register logic and is now working very well. I’ve wrote hundreds of lines of code today and my brain is frying…
Log in to leave a comment
I’ve completely reworked the back-end to handle the authentication part.
Front-end now (I just began working on it…) has a landing-page, dashboard, login an register page. They suck visually but works for now.
The back-end seems to be working and a Token is being given to front-end so it doesn’t lose the just-made authentication.
Log in to leave a comment
Entire time basically trying to understand how everything works. I have a good amount of experience in Java, but Spring is a new thing for me.
When things started working out, I made some structure (which is not even close to be functional in production) that worked with the front end (and made the entire application work) so I’m happy (even though I could’ve done it in a lot less time if I had the ability to read docs…)
IM HAPPY HEHE
Log in to leave a comment