Louvetoo: Daycare and Parent Bonding Made Easier ! My first solo project with research, MVP, architecture and a lot of whiteboarding!
Louvetoo Overview:
Louvetoo is a web application developed to fill the communication gap between parents and daycare centers. It enabled any parent or even grandparent to get updates of their children's activities, meals, naps and achievements at daycare. Louvetoo offers an effortless solution to daycare staff for handling children, recording daily activities, and keeping parents updated.
Team Members and Roles:
I did Louvetoo alone, from back-end to front-end. This project lasted for 1,5 months, from the initial planning to final deployment.
Target Users:
- Parents and Grandparents: Keep updates on the activities of their children/grandchildren at daycare and monitor progress.
- Daycare Staff: Effectively manage children's information(Diet, Allergies) and thus communicate updates to the parents.
Personal Focus:
I tried to make an intuitive and user-friendly interface for parents and daycare personnel, including secure authentication. Also tried securely and efficiently dealing with data.
Personal Story: Why Louvetoo?
As a father, I used to always worry about my kid while I was working. The anxiety of being in the dark about how my child was doing throughout the day motivated me to create Louvetoo. I wanted to know how his days are scheduled in daycare... This experience instilled in me a passion to develop an app that could provide real-time updates regarding a child's activities, with a sense of peace of mind for people like me.
Project Achievements
Project Result:
Louvetoo provides a platform that daycares employees can manage what children are doing, and parents are knowledgeable. The application is live and ready for use by daycare centers and parents.
View of the parents / View of daycare employees
Technology Stack and Choices
Frontend:
- ReactJS: It provides a component-based architecture; hence, building reusable UI components and efficiently managing application state becomes easy. I learned React by going through the official documentation in-depth and doing side projects to learn the React hooks.
- CSS3: This was used to style the application to ensure responsiveness and good user experience.
Backend:
- Node.js and Express: This has robust performance for handling asynchronous operations and also makes it easy to create RESTful APIs.
- MySQL with Sequelize: Used for relational Database Management. It was chosen due to familiarity and integration with Node.js. Although Supabase mainly is used with PostgreSQL, since I used MySQL as it was pretty straightforward and I knew about it, so it was used for development.
Deployment:
- Netlify: Used for hosting the frontend of the application due to its ease of use, continuous deployment capabilities, and excellent support for React applications. It allows for quick deployments and provides a seamless integration with GitHub for automated build and deployment processes.
- Supabase: Because of its robust PostgreSQL database and real-time capabilities, which were very essential in delivering instant updates to the parents. Although MySQL was used during development, I leveraged Supabase with advanced features and scale.
Key Features of Louvetoo
-
Activity Updates:
- Updates on meals, naps, play, and other activities of their children to the parents. This feature ensures the parents are always updated about the daily routine of their child in the daycare.
-
Photo Sharing:
- Daycare staff can share pictures related to daily activities of children, thus letting parents see their child's daily life.
-
Message:
- Get in touch with Daycare employees, or let employees send message to parents.
Most Difficult Technical Challenge
Designing and then implementing an efficient and scalable activity tracking system at the daycare's backend was the most difficult technical challenge during the development of Louvetoo.
Situation:
It required a system to manage and monitor various activities that each child carries out: meal times, nap times, play activities. Such a system would handle the storing efficiently of these records and display them live to both the staff and the parents. The challenge was one of good performance and scalability under load.
Task:
I had to develop a strong backend system for activity data handling, frequent updates, and quick access to this information from the frontend. This would require designing a database schema that handled a variety of activities with efficiency in concurrency performance.
Designed a normalized database schema using MySQL and used Sequelize as the ORM for database interactions. For enhancing performance, indexing was implemented against frequently queried columns and utilized pagination for large datasets. I engineered an API endpoint that logged activities, retrieved records, and performed performance testing with a great deal of care. Optimization of queries and indexes ensured that the system could efficiently sustain expected loads.
Result:
It implemented the activity tracking system so the backend could handle and show activity data efficiently. This meant a seamless experience for the staff and real-time updates for the parents, thereby improving the functionality of the app.
What I Learned
Technical Takeaways:
- Designing a scalable system underlines careful planning of a database schema and performance optimization techniques.
- Performance testing is important to identify and fix possible issues before going into deployment.
Personal Growth:
I could really work much on React, much more so on React Hooks. The learning of React Hooks enabled me to improve my capabilities with respect to state management and side effects through documentation and some practical side projects. This experience taught me how to build more efficient and readable React components; now, I have much greater confidence in using hooks for managing complex state logic in future projects.
- User Stories and MVP: Louvetoo brought out the need for the very clear definition of the user stories and focusing on MVP. This helped in prioritizing features, ensuring that the core features were implemented effectively before adding other features. Project Management: The Solo Project experience taught me the organization of tasks, setting milestones, and how to adapt to changing requirements. I learned to balance time for development, testing, and documentation, so my project management skills have improved in general. Technology Choices
Frontend Framework: Instead of ReactJS, I could have used other frameworks like VueJS. However, I chose React because of its high demand in the job market and its widespread adoption among recruiters. Staying up-to-date with React was a strategic decision to align with industry trends and enhance my employability.
Database Choice: I considered using PostgreSQL for the database, which offers advanced features and capabilities. However, for this project, MySQL was a more suitable choice as it was sufficient for the project's requirements and allowed me to gain experience with MySQL. PostgreSQL might have been overkill for this particular application.
Future Engineering Path:
It is because of this experience that I feel highly motivated to learn further on advanced topics in database optimization and scaling. I am going to continue learning performance tuning and other new tools and techniques for building scalable systems.
- I want to improve my understanding of front-end frameworks and the best practices so that my capability to develop robust and user-friendly applications increases.
About Me
I am a full-stack developer interested in scalable and efficient applications. Louvetoo has been one area of practical work for me in React, project management, and database design. Feel free to connect and learn more about my projects and my career.
Conclusion
The development of Louvetoo has been a great learning experience. Learning about new technologies and important concepts such as user experience and security, this project gave me all the basic, necessary skills to be taken forward into other works. I sincerely hope that Louvetoo will make a difference in the lives of parents, children, and daycare staff by providing them with an avenue to be more connected and better informed.
Top comments (0)