Life Dashboard banner

Life Dashboard

17 devlogs
69h 43m 8s

Full-stack productivity app (in the future will have AI integration)

Loading README...

daviipkp

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).

Attachment
Attachment
Attachment
0
daviipkp

Shipped this project!

Hours: 67.23
Cookies: 🍪 1933
Multiplier: 28.76 cookies/hr

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.

daviipkp

Just some things for deployment on Vercel and Render

Attachment
0
daviipkp

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.

Attachment
0
daviipkp

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.

Attachment
Attachment
0
daviipkp

Duolingo and leetcode service now working (ignore the fact that they’re duplicate)

Attachment
0
daviipkp

Streaks logic (counter and reset) already working and Daily Thoughts auto saving as well.

Attachment
0
daviipkp

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………………)

Attachment
0
daviipkp

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.

Attachment
Attachment
0
daviipkp

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.

Attachment
0
daviipkp

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.

Attachment
0
daviipkp

UX/UI improvements!!!!!!!!!
I spent most of time organizing divs, but everything is very pretty!!
divs configured:

  • added Goal Analytics (front and back)
  • added Daily Data (front only for now)
  • added interactable Daily Thoughts (with auto-save)
  • Added interactable Daily Observations
  • Added Monthly Progress
  • really great improvement in Streaks place (and design altogether).
    Some back-end fixing as well like solving a problem with Streak data sending and I started the creation of some services that I’ll be adding soon
Attachment
0
daviipkp

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.

Attachment
0
daviipkp

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:

  • Added details to the Streaks section of the dashboard.
  • Gave the nav bar a visual overhaul.
  • The nav bar is now responsive (shrinks properly on mobile devices).
  • Added a ‘Daily Thoughts’ input with auto-save (O.o). In the attachment that part is actually in portuguese cuz I typed it without thinking (but I’ll change it later)
  • Securely reconnected streaks data with the backend. As I said in the past dev logs, the first version was built without authentication (I was still learning!), but that is now resolved.
  • Implemented multiple DTOs to ensure correct data transfer.
Attachment
Attachment
Attachment
0
daviipkp

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.

Attachment
0
daviipkp

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…

Attachment
0
daviipkp

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.

Attachment
0
daviipkp

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

Attachment
0