DEV Community

Cover image for Week Three of #100DaysOfCode
Lymah
Lymah

Posted on

Week Three of #100DaysOfCode

Introduction

My Week 3 Journey: Document Uploads, Dashboard Development, and Encryption

Week 3 of my 100 Days of Code challenge has been an exciting one, filled with significant milestones and a few hurdles. I've made great strides in both the backend and frontend of my application, particularly in implementing encryption, developing a functional dashboard, and setting up document storage with AWS S3. Here’s a summary of my progress, the challenges I faced, and the key learnings that came with it.

Encryption Implementation

One of the major achievements this week was implementing encryption for document uploads. I used Node.js’s crypto module to ensure that documents are encrypted locally before being uploaded to AWS S3. This added an important layer of security for sensitive data. Along the way, I learned how to generate a strong secret key and apply it to JWT (JSON Web Tokens) for additional security. While there were some debugging challenges, it was an invaluable experience in mastering encryption and securing data in a web application.

MongoDB Integration and Backend Development

I also made significant progress on the backend of the app. I integrated MongoDB, allowing for efficient data management, and added several CRUD (Create, Read, Update, Delete) routes to handle user interactions with the database. With the backend now functional, the app is getting closer to being ready for deployment. The process helped me understand how to build a robust backend system capable of handling user data securely.

Docker and AWS S3 Integration

Another major focus of the week was configuring Docker to work with the backend API for document uploads and encryption. Initially, connecting Docker to the backend proved tricky, but I was able to overcome these challenges by diving into Docker resources and troubleshooting issues step by step. I also integrated AWS S3 using MinIO via Docker, providing a secure and scalable cloud storage solution for the app. This setup allowed me to simulate AWS services locally, which was particularly useful for testing.

Dark Mode and Heroicons

I also experimented with implementing Dark Mode/Light Mode functionality for the dashboard. Although I encountered some challenges, I’m excited to continue refining this feature. Additionally, I explored Heroicons, a popular React and TailwindCSS icon library, which has been extremely useful for enhancing the visual appeal of the app. I learned the difference between solid and outline icons and when to use each, as well as the smaller Mini and Micro Heroicons.

Challenges and Solutions

This week wasn’t without its challenges, especially when integrating Docker and AWS S3, and dealing with issues related to Dark Mode. However, each obstacle provided an opportunity to learn and improve. Through troubleshooting and persistence, I was able to find solutions that pushed the project forward. These challenges have not only helped me enhance my problem-solving skills but also deepened my understanding of web development and cloud services.

Conclusion

This week has been a period of tremendous growth, both in terms of technical skills and problem-solving. I’ve learned how to integrate complex features like document encryption, MongoDB, and AWS S3 while also refining the frontend with React and TailwindCSS. Despite the hurdles, I am more confident in my ability to tackle challenging problems and find effective solutions.

As I continue this 100 Days of Code journey, I look forward to refining the app, troubleshooting remaining issues, and eventually preparing it for deployment. Stay tuned for more updates as I move closer to completing this exciting project!

Top comments (0)