My First full-stack Software Engineering Project
I will guide you through the process of creating DOIT, my portfolio project for ALX's full-stack software engineering program. Throughout this journey, I will also share the knowledge I gained.
DOIT is an online productivity app designed to help you create and manage to-do lists and tasks. In three weeks, I developed DOIT, handling responsibilities such as back-end development, database management, front-end development, and integrating the two.
As someone with various tasks and goals, it can be overwhelming to keep track of everything. DOIT efficiently arranges, manages, and stores all your to-do lists and tasks in one convenient location. As a student of architecture, ALX Software engineering program, and music producer, juggling multiple tasks within different fields can be daunting. This inspired me to create an app that could help with organizing and managing these tasks effectively.
Following nine months of extensive foundational training at ALX, I was determined to create a to-do app for my portfolio project. Despite the challenging task of completing the project within three weeks, I saw this as a chance to establish the groundwork for a system that could be further developed in the future.
Architecture
Improved: For the front-end, I utilized Adobe XD to design the UI and then implemented it from scratch using HTML5, CSS3, and JavaScript(jQuery). Rather than relying on CSS frameworks or pre-designed templates, I opted for a self-built approach to enhance my understanding of the underlying principles of these technologies.
On the back-end, I used a combination of MySQL, SQLAlchemy, and Flask to develop the core functionality of the system. Firstly, I employed the Python programming language to create a console, then utilized SQLAlchemy, a powerful Python ORM, to design and outline the database structures within the models.
Recommended by LinkedIn
For designing routes and rendering templates, I utilized Flask and jinja2. The login and registration system were implemented using Flask and JWT token authentication via a RESTful API.
To carry out CRUD operations on the database, I utilized AJAX through RESTful API endpoints and JavaScript to render responses on the front-end. All requests to the API were made using AJAX, with any information appended to the database sent as JSON with the JWT token in the HTTP authentication header, ensuring that the system was only responsive to authenticated users.
Some notable features are:
One of the most challenging aspects of this project was ensuring secure user authentication and protecting user-specific routes. To achieve this, I implemented JWT tokens, which enabled me to verify the authenticity of users accessing the system. Despite the initial difficulty, I was able to overcome this challenge and create a robust authentication and security system that ensured only authorized users could access sensitive areas of the application.
It's been a pleasure sharing my first project with you all. My name is Balogun Adedotun, and I'm a student architect and a full-stack software engineering student at ALX. I'm passionate about using technology to solve problems and create innovative solutions.
If you'd like to know more about my project, I welcome you to explore the GitHub repository and its features. Additionally, you can check out the DO-IT app website and watch the demo video to see it in action. I'm always eager to connect with new people and explore exciting opportunities, so feel free to reach out to me on LinkedIn. Thank you for taking the time to review my work, and I'm excited to hear from you soon.
Thank you for your time.
This is amazing! I love the concept and the tools used. Did you do all this alone or with a team?