Introducing All Can Learn (ACL): Empowering Education for All

Photo by MD Duran on Unsplash

Introducing All Can Learn (ACL): Empowering Education for All

All Can Learn (ACL) is a transformative learning management model designed to bridge the education gap and make quality education accessible to individuals, schools, and communities. Our mission is to empower minds and transform lives by providing a flexible routine and bringing the school experience to the doorsteps of those who face barriers to education.

Team Members, Roles, and Timeline

  • Afam Ugwuanyi: Project Manager and Team Lead

  • Toluwani Ajibare: Frontend Developer

  • David John: Backend Developer

Timeline: The ACL project started in April 2022 and is currently ongoing. The team has been working diligently to deliver a robust and user-friendly learning management model.

Target Audience

ACL was created for individuals who lack access to traditional educational institutions due to financial constraints, inflexible schedules, or geographical limitations. We aim to reach out to students of all ages and backgrounds, providing them with equal opportunities to receive a quality education.

Personal Focus

Throughout the development of ACL, our focus has been on creating a seamless user experience and ensuring the platform is intuitive and easy to navigate. We believe that user-centric design and smooth functionality are essential to engage and empower our users. Our goal is to make the learning process enjoyable, interactive, and accessible for all individuals.


Growing up in a bustling city, I was surrounded by the constant hum of activity and the opportunities that education provided. I was fortunate to attend schools that nurtured my curiosity and equipped me with the knowledge and skills to pursue my dreams. However, it was during a chance encounter that my perspective on education shifted significantly.

One summer, I volunteered at a community center located in an underprivileged neighborhood. The center aimed to provide educational support to children who faced numerous challenges in their daily lives. Interacting with these young individuals opened my eyes to the stark realities that many face when it comes to accessing quality education.

I listened to their stories, each one brimming with potential and aspirations, but hindered by circumstances beyond their control. Limited resources, overcrowded classrooms, and a lack of educational opportunities were constant obstacles in their path. Witnessing their determination to learn despite the odds inspired me deeply.

It was from that moment that I became passionate about breaking down barriers to education and empowering those who are often left behind. When I discovered the All Can Learn (ACL) project, I knew it aligned perfectly with my personal mission. ACL's commitment to making education accessible resonated with my own experiences and values.

By working on ACL, I have the opportunity to combine my technical skills with my unwavering belief in the power of education. Through this project, we strive to create a platform that not only offers a flexible learning environment but also reaches out to individuals, schools, and communities who are marginalized or lack access to traditional educational institutions.

Personally, my focus in this project is to ensure that the ACL platform is user-friendly, intuitive, and inclusive. I want to create an experience where every individual, regardless of their background or circumstances, feels empowered and motivated to embark on their educational journey.

Through ACL, we have the chance to make a real impact, providing equal opportunities for education and unlocking the potential within individuals and communities. Together, we can transform lives, one learner at a time, and contribute to a more equitable and inclusive society.


Accomplishments

We are proud to share the significant accomplishments achieved through the All Can Learn (ACL) project. Here is a summary of what has been accomplished:

  1. Result of the Project: The ACL project has successfully developed a comprehensive learning management model that empowers teachers, students, and schools to maintain a flexible routine and brings education to individuals without access to traditional schools. By leveraging technology and innovative learning management approaches, ACL has bridged the education gap and made quality education more accessible to all.

  2. Architecture Diagram: [INSERT ARCHITECTURE DIAGRAM]

  3. Technologies Used and Choices Made:

  • For the front end, we chose to use HTML, CSS, and JavaScript without any additional frameworks. We made this choice to have full control over the design, layout, and interactivity of the user interface. It allowed us to customize the experience according to the specific needs of ACL users.

  • APIFlask, a wrapper around Flask, was selected for the backend REST API due to its simplicity, flexibility, and extensive ecosystem. It provided a robust foundation for handling HTTP requests, routing, and authentication.

  • SQLAlchemy, a popular Python SQL toolkit and ORM library, was utilized for efficient database management. Its powerful features and compatibility with various database systems made it an ideal choice for ACL.

  • Gunicorn was chosen as the server for its high-performance capabilities and ability to handle multiple concurrent requests, ensuring smooth and reliable hosting of the ACL backend.

  • Jitsi Meet, a versatile and secure video conferencing platform, was integrated into ACL to facilitate live classes and real-time collaboration. It's open-source nature and robust functionality made it an excellent fit for ACL's requirements.

  1. Completed Features:
  • User Registration and Profile Updates: Users can sign up for ACL, provide their essential information, and update their profile details as needed. This feature enables individuals to create and manage their accounts within the ACL ecosystem.

  • School Management: Users can view all available schools and join or create their schools. This feature empowers individuals to connect with educational institutions, fostering a sense of community and facilitating collaboration.

  • Class Enrollment: Users can join multiple classes within a school, either as teachers or students. This functionality enables seamless enrollment and participation in various educational programs, supporting a diverse range of learning experiences.

These features directly contribute to enhancing the user experience and promoting a dynamic and inclusive learning environment within the ACL platform.

Most Difficult Technical Challenge

One of the most challenging technical obstacles we encountered during the development of the All Can Learn (ACL) project was finding an elegant solution for querying the backend API while maintaining a clean and user-friendly URL structure.

The backend API utilized UUIDs (Universally Unique Identifiers) as unique identifiers for specific data entities. However, including these lengthy UUIDs directly in the URL parameters resulted in a cluttered and visually unappealing user experience. We recognized the importance of aesthetics and user-friendly URLs to enhance the overall usability of the ACL platform.

As we were using pure HTML, JavaScript, and CSS for the front end, we explored various approaches to address this challenge. Initially, we considered storing the UUIDs in the frontend state, but this approach had limitations since the frontend state is not easily shareable between different devices or browser sessions.

To overcome this roadblock, we devised a solution that leveraged the browser's localStorage. We implemented a mapping mechanism that associated shorter, user-friendly identifiers with the corresponding UUIDs. When making API requests from the front end, we used these user-friendly identifiers instead of the lengthy UUIDs in the URL parameters.

On the backend, we ensured that the API endpoints were designed to handle both UUIDs and user-friendly identifiers. The backend would internally map the user-friendly identifier to the corresponding UUID to retrieve the required data.

By implementing this solution, we achieved a cleaner and more visually appealing URL structure while preserving the ability to query the backend API effectively. Users were able to interact with the ACL platform without encountering long and cumbersome URLs, enhancing their overall experience and usability.

This technical challenge required careful consideration and creative problem-solving to strike a balance between aesthetics and functionality. Through collaboration and innovation, we successfully overcame this hurdle and provided a seamless user experience within the ACL platform.

Key Takeaways

Throughout the development of the All Can Learn (ACL) project, we encountered several technical challenges that provided valuable insights and takeaways. These experiences not only enhance our technical skills but also influenced our perspectives as engineers. Here are some key observations and reflections:

  1. Technical Takeaways: Working with pure HTML, JavaScript, and CSS for the front end allowed us to delve deep into the fundamentals of web development. We gained a solid understanding of the core technologies and their interactions. This hands-on experience strengthened our knowledge of front-end development principles and empowered us to build customized user interfaces tailored to ACL's requirements.

  2. Potential Improvements: In hindsight, we realized that considering a JavaScript framework or library could have provided additional productivity and efficiency during the development process. While opting for pure HTML, JavaScript, and CSS allowed us to solidify our understanding of the underlying technologies, leveraging a framework like React or Vue.js could have expedited certain aspects of the development and improved code organization.

  3. Personal Growth as an Engineer: Through the ACL project, we learned a great deal about problem-solving, collaboration, and adaptability. Overcoming technical challenges and finding innovative solutions required us to think creatively and approach problems from different angles. This experience reinforced our ability to adapt to new technologies and work effectively within a team, enhancing our overall engineering capabilities.

  4. Future Engineering Path: The ACL project has served as a significant milestone in our engineering journey. It has provided us with practical experience in developing a complex application from scratch, encompassing both front-end and back-end components. This project has reinforced our passion for software development and deepened our interest in building user-centered applications that make a positive impact on people's lives. Moving forward, we are committed to honing our skills, exploring new technologies, and continuing to create innovative solutions that address real-world challenges.

  5. Reevaluation of Beliefs: Before the project, we held a belief that traditional JavaScript, CSS, and HTML were sufficient for building modern web applications. However, during the ACL project, we recognized the value of JavaScript frameworks and libraries in terms of productivity and code organization. This experience has prompted us to reevaluate our beliefs and consider the use of frameworks in future projects, while still appreciating the importance of understanding the underlying technologies.

Overall, the ACL project has been a transformative experience, enabling us to grow both technically and personally. It has provided valuable insights, guiding our engineering path forward and shaping our approach to future projects. We are excited to continue expanding our knowledge, embracing new technologies, and making a meaningful impact through our engineering endeavors.

Meet David John

I am a dedicated and passionate software engineer with a strong focus on backend development. I thrive on solving complex problems and architecting scalable and efficient solutions. With expertise in JavaScript, React, Python, C, and TypeScript, I have a versatile skill set that allows me to contribute to different aspects of software development. My attention to detail and commitment to delivering high-quality code make me an asset to any development team. I am always eager to learn and explore new technologies to enhance my skills and stay up-to-date with industry trends.