The core of this website is for users to share their artistic creations based on the daily text prompt. From drawings to paintings, users get to share their imaginative expressions and be inspired in this environment. The like and dislike feature allows users to interact with one another and foster an interactive community. I thought this would be a fun idea that would enable me to implement token-based user authorization and facilitate API calls between a React frontend and Django backend. This experience has not only broadened my technical skills but also showcases my ability to create interactive and dynamic web applications.
I began by defining the purpose of the website, establishing the scope and wrote out the flow of user interaction. I designed the wireframe for the main page of the website and broke that down into smaller parts that would become my React components. Building upon this foundation, I have programmed the different features of this website making sure the frontend and backend integrate harmoniously. With the majority of interactive elements polished, I took on the process of making the UI look more visually appealing by refining the CSS and Bootstrap styling.
I found on previous projects that the scope tended to get bigger as I added more features, leading to longer-than-anticipated development timelines. I decided to limit the project to a number of key features that could highlight my technical skills and allow me to finish it in a reasonable amount of time. Another challenge I encountered involved handling data flow between the frontend and backend. To overcome this difficulty, I took a systematic approach by outlining the step-by-step process and data flow. Breaking down the data handling into distinct stages allowed me to identify the required data format and implement effective strategies for managing it on both the frontend and backend.
Currently, users can freely upload, delete, and reupload drawings as many times as they want throughout the day. One proposed improvement is to introduce a monthly limit on the number of times a user can delete and reupload their drawing. This would encourage users to consider their submissions more thoughtfully and aims to strike a balance between flexibility and structure.