Activity

asjblue28

Shipped this project!

This is SketchSpace, a whiteboard application that allows you to draw and visualise ideas directly within your browser without having to sign up or pay for features. You can draw, add text, use shapes, use layers, have multiple whiteboards and even export your whiteboards for use elsewhere. Your whiteboards are also saved directly within your browser, so you can pick up where you left off whenever you want.

I created this project because whenever I needed a quick whiteboard for explaining ideas to friends, building flowcharts, or doing brain dumps for school, most online tools required an account or locked basic features behind a paywall. SketchSpace solves that problem by being a fast, no sign up whiteboard that anyone can use instantly. This project taught me a huge amount about web development, especially working with React, canvas rendering, state management, and browser storage. I’m really proud of how it turned out, and I hope you enjoy using SketchSpace as much as I enjoyed building it!

asjblue28

Today I fully refactored SketchSpace from the traditional HTML, CSS and JS to use React through Vite. This was a big step for me as I am slowly getting more comfortable with more advanced web frameworks like React. This wasn’t as hard as I would have expected as I have already refactored another project (Classify) to React. I took most of my JS and moved it into a whiteboard.js file and then incorporated the html/css into the main component. I do admit, I need to get better at splitting up my pieces of code into multiple components as I read that you are meant to have each component only perform one action/use in React. Overall, supper happy with how the refactoring went, hopefully you guys like SketchSpace!

0
asjblue28

Shipped this project!

This is Classify, a tool made for students that helps them organise all of their classes, grades and assignments/tasks in one neat place. In the dashboard section you can add classes and your grades for those classes. In the task board section you can add upcoming assignments or tasks you need to do with due dates and in the calendar section, you can see/visualise when your tasks with due dates are actually due! Overall, this project has taught me so much about coding, especially about web frameworks such as React and the classic, HTML, CSS and JS. I am so glad I undertook this journey and I hope you guys enjoy using my project as much as I have enjoyed making it!

asjblue28

Wow. Today I fully refactored Classify from the basic html, css and js to use React through Vite. This was such a huge learning moment as I learned how components, usestate, props, hooks and much more worked. Although, I do admit it was easier because I already had a very good grip on JS, HTML and CSS. The one thing I most enjoyed about React was its ability to neatly split up your code into small sections (components) which makes it very easy to debug and read through. I also loved how you could run a live server with npm run dev. I am super proud of myself for being able to fully transfer over my current project to another framework and I hope you guys enjoy using it as much as I did making it!

0
asjblue28

Today I finished off one of the major features of Classify. This was the task bar integration with the calendar. Now any task cards in the task board section with a due date will show up in the calendar which the user can scroll through and see when their projects are due. If a card is due on a day, it will show up as a dot inside the day, this dot will be red if the project is due today or tomorrow, orange if its due in the next 7 days and green otherwise. When a day is selected, any tasks due on that day will show up in the sidebar to the right which allows users to view what tasks are due that day in a nice compact form. Overall, I have had a lot of fun working on this project. School holidays are nearing the end so I am not sure if I will get a chance to start another project. Very proud of myself and what i’ve learnt from starting with some very basic coding knowledge to being familiar and proficient with html, css and js. Hopefully I can keep coding during the school term!

Attachment
0
asjblue28

Quite a long day today. I honestly thought I could get more work done in but I kept getting a lot of frustrating bugs and errors that took a lot of time and effort to fix. I spent today adding due dates for the task cards in the Task Board section. This allows users to set due dates for their tasks and see when each task is due. When the task is due today or tomorrow, the due date text will become red and if the task is due within 7 days, the text will become yellow. One of the main bugs I faced was the alignment of the calendar icon and due date text. For some reason the css gods were not on my side and I spent so long trying to fix it. Eventually I got it looking semi decent but you can still see some unevenness with the due date text which will hopefully get fixed soon. Now I just have to integrate these due dates with the calendar tab I made and a major part of Classify will be done!

Attachment
0
asjblue28

Today I worked on adding calendar integration to Classify. I managed to make an entire calendar section and made a working calendar that users can traverse through with the day selected showing on the right of the calendar. What I am planning is that eventually, you will be able to add due dates to the cards you add in the Task Board section, this will then show up on the calendar and allow you to visually see when all of your tasks are due, similar to other task managing apps like Clickup or Trello, but for free. This feature is quite important as I for one have forgotten when things are due and being able to see a visual calendar of when you need to submit things is super helpful for any student.

Attachment
0
asjblue28

Today I fully finished off the Kanban/Task board section of Classify. This includes the ability to make new lists/groups, add cards/tasks and move these lists and cards around. This was crucial as organising tasks and making reminders of things to do is a vital task of any student. I was at first frustrated because the drag and drop functionality was giving me a lot of issues, but after a lot of debugging and refactoring, I have managed to get it to a pretty good state. I have also been researching some other web development frameworks as I want to get away from the basic html, css and js so a potential switch/refactor to another framework like React/Next.JS may be in the future once I add the features I want to this project. Overall, major chunk of work done today, can’t wait to add the next features I have in mind. Stay Tuned!

0
asjblue28

Today I worked on adding browser storage so that your classes/data could persist on reload/reset. It was a little annoying but I managed to get through. I then added an option to delete assignments as I realised I forgot to add it yesterday. I also got to work on making the Kanban/Task board section of the website. This will allow you to keep track of all your upcoming assignments and sort task into list such as To Do, In Progress, Complete or whatever you decide to name them, I was only able to make the a basic hardcoded structure/layout today but tomorrow I will focus on adding all the functionality.

Attachment
0
asjblue28

Long day today, spent most of it figuring out how to add the assignments part and allow users to input their assignments/tests and then for it to calculate the weighted average and display this on the dashboard. The most frustrating part was that I could not get the semi circle on the classes card to work properly, it was bugging out and not filling correctly. I finally managed to get it working by changing it to an SVG progress arc which seemed to fix it. I also made it so that the fill colour is red if your average is below 50%, orange if its between 50% and 80% and green if its 80% or above. You also cannot delete assignments which is the next thing I need to add. Overall, made some good progress today and excited to see where this project leads.

0
asjblue28

Today I worked on adding more functionality to my dashboard/classes. I made it so that users can create and delete classes/cards. I also made it so that when users click on each card, it opens a respective menu that for now displays the class name and a back to classes link. But eventually, this will have all the class stats. This was quite difficult as I had to learn how to make multiple elements/components using javascript. I also had to learn how to open the respective class menu by using class=“hidden” + css. Overall, got the base functionality down today and super happy with how my project is progressing.

0
asjblue28

Spent today just making the basic structure, I hard coded some subjects in to test how they look but I will work on adding functionality in the upcoming days. It looks really bland/black and white right now so I will also need to update the UI. Not bad for the first day.

Attachment
0
asjblue28

Finally, this is the last devlog. I wanted to fully polish off the project before submitting so I fixed the minor bugs on mobile that were popping up such as the text tool bugging and flying off the screen or the selection tool not working properly. I also added the ability to resize your selections with the selection tool which was a feature I was missed from professional whiteboard tools. Hope you guys enjoy!

Attachment
0
asjblue28

We are finally coming to the completion of my whiteboard project! Today I did some bug fixes, mainly an issue where it was very hard to use the text tool on mobile as you would have to hold down with one hand and type with the other. Now you just tap once then are free to type your text. I also added a website icon that I think looks very nice and fits the theme of my website. I then added a pan tool so that users who were on mobile or couldn’t use (space + drag) would be able to pan the canvas. I also fixed a quality of life issue where the undo/redo tool only undid/redid parts of a line, not the whole line/stroke which was annoying as you had to click undo/redo multiple times to get the desired outcome. This was difficult to recode as I had to almost completely change how lines were stored in order to achieve the desired outcome/quality. I will probably ship this in the next few days and start another project unless I get the urge/inspiration to code some more features. Honestly, I am so happy that i decided to undertake this journey of coding and I think this website is really nice and to a high level of quality. I hope you enjoy using it just like I enjoyed making it!

Attachment
0
asjblue28

Today was quite a calm day, spent most of today just adding quality of life features as well as bug fixing and adding mobile support. I added a magnifier tool on the bottom right that allows users to see how far they are zoomed in, it also means that users can now zoom in/out on mobile as they couldn’t before (no scroll). I also made my icons much better as they looked quite bad. As i mentioned before, the paint bucket tool was extremely buggy, it would not work and constantly bug out when zooming in/out so i completely fixed that. I had to almost rewrite the whole function for it but it was worth it as it is much better now. I also fixed some bugs that were occurring on mobile, such as the drawing bugging out and some tools not functioning properly. The one main bug that I still haven’t fixed is that the text tool is really finicky on mobile and often does not work (you have to hold it down with one finger and type with the other), so I need to fix that. Overall, nearing the end of my project and can’t wait to see what I do next!

Attachment
0
asjblue28

Today I added a much needed feature to my whiteboard that I think will elevate it above the rest. The selection tool. This tool will allow users to select parts of their drawings and move them around, delete them or copy/paste. This is incredibly useful as it means that you don’t have to erase or redraw if you want to change a part of your drawing. You can just select it and move it around! I was only able to add this tool today as it was quite a big one, requiring me to code all the of selection boundaries as well as implementing copying/pasting the selected portion + moving/deleting. Now, the main things left are adding a dark mode and fixing the bucket fill tool which is extremely buggy. I was also testing the website on mobile and the support is alright, as you cannot scroll out, pan, or even delete/copy/paste your selections. Which is something I will try to improve.

0
asjblue28

Spent the entirety of today working on making the UI of my whiteboard better. Specifically the sidebar as it was cutting out at the bottom of smaller screens and just didn’t match the vibe/feel of what I was going for. I ended up making the background of the sidebar white, it is now also scrollable on smaller screens where the bottom may get cut out. I also added some visual seperation between the whiteboard and sidebar for a nicer more professional feel. The next thing on my agenda is making a dark mode as well as continuing to add more features such as selecting and copy/paste. I do need to fix the functionality of some current tools, mainly the bucket fill tool which is very buggy especially when scrolling or panning, but that can be done later once all the features I have in mind are added.

Attachment
0
asjblue28

Today I added 2 major features of the whiteboard. These were the ability to make multiple layers and allowing the user to create multiple whiteboards/canvases. These were crucial as they allow users to have more than one drawing/whiteboard at the same time and use layering for easier drawing/writing. These features are also in many paid whiteboard apps/websites and it is nice that I managed to add it to mine which is free. I have been saying this for the last few devlogs but the next thing I need to do before anything else is revamp the sidebar and it’s look/support. This is because the bottom half is not appearing on smaller screens and removes so much functionality. I will either need to make it resize depending on the screen or just revamp is completely. Overall, amazing work done today and I can’t wait to fix the sidebar.

0
asjblue28

Today I added pan/zoom functionality as well as an export canvas feature. The pan/zoom was quite tedious to add as I kept running into bugs and errors where the drawings/lines would bug out and completely disappear or just duplicate over and over as you tried to pan or zoom. Eventually, I managed to figure it out and I am very happy with how the final product turned out. The user now has much more room to work with and can easily zoom out/in and see all of their drawings. The other feature I added was an export button that allows the user to download a png of the current canvas window. This was much simpler than the zoom/pan but still took a bit of time to figure out. But, the main issue now is that the info button is not visible at the bottom of small screens, which is the main issue I need to fix/improve. Overall, I am extremely happy with today’s work. The next things I want to add are multiple layers and multiple canvas pages.

0
asjblue28

Today I made a text tool and bucket fill tool. The text tool was particularly frustrating as once the user typed in the text, it had to be made into a drawing which could then be erased and selected like normal drawings. The bucket tool was easier but I struggled with defining areas that are completely enclosed by a line or drawing. It is kind of glitchy right now but is acceptable. The main issue that appeared with the addition of today’s tools was that the side bar now gets cut off on smaller screens which is why I need to make it auto resize depending on the screen size. Overall, good work done today, the main things I need to do now is to add more features but more importantly make it look better and more aesthetic.

Attachment
0
asjblue28

Today I worked on adding an undo and redo button as I felt it is an essential feature of many online whiteboards and is a great quality of life addition. I made these buttons also have their respective commands (Ctrl + Z, Ctrl + Y). I then added some basic shape tools to the whiteboard that appears in a popup when clicked on the sidebar. These include (Line - L, Rectangle - R, Circle - O and Arrow -A). These features took a long time because I have to make all actions save in sequence so they could be redone and undone. I also needed to make the shape tools update and resize as you drew them. Overall, happy with the work done today and my whiteboard is coming together. Although, once all of the features I have in mind are finished, I will need to make it look much better as it’s quite an eyesore right now.

Attachment
3

Comments

Rei
Rei 18 days ago

aiii this proj is niceee :DD
will u make it professional?

asjblue28
asjblue28 17 days ago

Ay thanks! Its pretty barebones right now but adding lots of features and making it look professional is the goal :)

Rei
Rei 17 days ago

ohh nice nice love that :DDD

asjblue28

Today I learned about how mobile touchscreens work and how to properly implement mobile support into the whiteboard. This was frustrating as I kept failing and getting errors. I finally managed to get a somewhat ok experience on mobile which I will take as a win. I also added functionality to the clear all button (you can now clear the canvas) as well as some basic keyboard shortcuts which you can find from the popup menu (P - Pen, E - Eraser, C - Clear). The next thing I need to do is make the mobile support better and start thinking of and adding more features to the whiteboard as it is pretty bare bones right now.

Attachment
0
asjblue28

Spent today just learning about how browser storage / local storage worked and how you can save variables and information to the browser in things like caches or cookies. I managed to get the storage working so now your drawings persist on reload and reopen. I still haven’t added the clear all functionality which is one of the main things I have left. Overall, good progress today, my project is nearing completion.

Attachment
0
asjblue28

Spent today just making most of my sidebar work. You can now change the colour, pen thickness, eraser thickness and select between the pen and eraser mode. I still need to add browser storage and clear all functionality but I am very happy with what I managed to accomplish today. I am starting to understand and become more familiar with Javascript, CSS and HTML which is good as it means my knowledge is increasing. Overall, good progress today can’t wait for tomorrow.

Attachment
0
asjblue28

Another long day today. Basically spent all of the day learning how javascript worked and how it ties into both css and html. I managed to get some basic drawing functionality. None of the sidebar works as of yet (changing colours, thickness, erasing), but at least the user can now draw. I will most likely spend tomorrow adding more drawing functionality. Overall, I am extremely happy with todays progress and how I am progressing with this project!

Attachment
0
asjblue28

Spent all of today learning how css worked. This is because I am doing this challenge to start coding and have basically no coding knowledge. Took a long time to understand all the concepts and how to make stuff look good in css. I am pretty happy with how my whiteboard turned out. Now I just need to add all of the javascript functionality and save it to the browser which I assume will take me longer than learning the css. Very happy with how my learning is going and I am excited to learn more!

Attachment
0
asjblue28

Added the basic structure for the html section of the website and created a canvas element that will be helpful in the future when creating the website. It does not look too good right now but as I add the css and js functionality it will look much better.

Attachment
0