Development
Alethia's development process followed a structured software development life cycle, incorporating a modified agile approach that allowed for iterative testing and refinements, particularly in the areas of user experience, data processing, and backend systems. The project was divided into distinct phases, with a clear division of responsibilities between in-house development and external collaboration.
The planning and analysis phase took 4 months and involved extensive research and competitor analysis to define the project's scope and objectives. Given the constraints of implementing sophisticated data-gathering algorithms and the need for an intuitive user experience, this phase was crucial in shaping the direction of the project. Key decisions during this phase focused on how to balance functionality with ease of use, and how to structure the backend to support real-time data processing.
In-house development focused on five critical systems, which were completed over 10 months. These systems were designed to ensure that Alethia’s backend could effectively support the front-end experience developed by the partner company:
-
User Experience and Interaction Design
-
All UX design elements were crafted to create an intuitive and seamless experience for users, ensuring that navigation and interaction with the system are straightforward and user-friendly.
-
-
Asset Creation
-
Developed all visual assets, including icons, images, and interactive elements, to ensure consistency with the overall design language and brand identity.
-
-
Data-Gathering Algorithms
-
Designed and implemented algorithms to aggregate and process data from multiple sources, ensuring accurate and real-time updates that feed directly into the user interface.
-
-
SQL Database Development
-
Built and optimized the SQL database, focusing on efficient data storage, retrieval, and management to support the real-time requirements of the application.
-
-
System Integration and Backend Support
-
Ensured seamless integration between the data processing systems and the front end, providing the partner company with the necessary APIs and backend support to implement the user interface.
-
Languages:
Python, Django, PostgreSQL
Tools:
XD, Illustrator, Photoshop, 3DS Max
Design
Functionality:
The design of Alethia was carefully crafted to ensure that every user interaction is smooth and intuitive. A key focus was on seamlessly integrating complex data into a user-friendly interface, making detailed ethical information accessible with minimal effort. The barcode scanning feature, a central component of Alethia, was designed for speed and accuracy, requiring minimal user input while delivering comprehensive product data.
Attention was given to the flow of information, ensuring users could easily navigate between scanning products, viewing ethical scores, and accessing detailed reports. The user journey was optimized to minimize steps, with all essential data available within two or three taps. A customizable user dashboard aggregates activity such as scanned products and saved ethical preferences, allowing users to personalize their experience and focus on issues that matter most to them.
Additionally, a recommendation engine suggests alternative products based on ethical preferences. Integrated seamlessly into the design, these recommendations appear contextually relevant, fostering informed decision-making. Interactive data visualizations were also included to help users better understand ethical scores and company histories, enabling exploration through intuitive actions like tapping and swiping.
Aesthetics:
Alethia’s visual design combines modern minimalism with a strong emphasis on functionality, creating a clean and professional interface that supports the app’s focus on ethical transparency. The color palette features neutral tones with subtle accent colors to highlight key interactive elements, guiding user attention without overwhelming the interface. Typography is chosen for readability, using a modern sans-serif font with a clear hierarchy that ensures quick absorption of information. Custom icons and interactive elements like buttons and sliders are designed to be both intuitive and responsive, enhancing the user experience through subtle animations and clear visual cues.
Consistency across the app was a priority, with every element, from layout to color schemes, carefully coordinated to create a unified visual language. This consistency not only strengthens Alethia’s brand identity but also ensures that users experience a cohesive and engaging interface across all devices. The design’s simplicity and clarity reflect Alethia’s commitment to transparency and trust, making ethical decision-making accessible and visually appealing.
Code
Overview:
The codebase for Alethia was developed with a focus on maintainability and scalability. Python was used for backend development, leveraging Django’s capabilities to manage complex data interactions and API services. The SQL database was optimized for performance, ensuring that data retrieval and processing occur swiftly even under high loads.
The backend systems were designed to be modular, allowing for future expansions and integrations with minimal disruption. The code was documented thoroughly to ensure that it can be easily understood and maintained by future developers.
Problem:
One of the most significant challenges faced during Alethia’s development was ensuring that the data-gathering algorithms could operate in real-time without compromising performance. Given the reliance on multiple data sources, there was a risk of delays in data processing, which could impact the user experience, especially when scanning barcodes in a live environment.
Another challenge was integrating the SQL database with the front-end systems developed by the partner company. This required close collaboration to ensure that data was consistently and accurately transmitted between the backend and the user interface.
Solution:
To address the performance challenges, a combination of caching and asynchronous data processing was implemented. Frequently accessed data is cached locally, reducing the need for repeated queries, while less critical data is fetched asynchronously, allowing the user to continue interacting with the app without waiting for data to load.
The SQL database was designed with indexing and query optimization techniques to ensure fast data retrieval. Additionally, a layered approach to API development was used, where data is processed and validated in stages, ensuring accuracy while maintaining speed.
Close collaboration with the partner company ensured that the front-end integration was seamless. Regular testing and feedback loops allowed for quick identification and resolution of any issues, ensuring that the final product delivered a smooth and responsive user experience.