Graasp

Frontend Backend UI Design

At Graasp, I work as a fullstack developer, building tools for collaborative, inquiry-based education. This page highlights my contributions to both the frontend, backend and UI design of an open-source platform.

Graasp is a digital learning platform developed at EPFL (École Polytechnique Fédérale de Lausanne) to support collaborative, inquiry-based education. Designed for educators, students and researchers, it provides an environment where users can create, share and manage interactive learning activities. With a strong focus on scientific and inquiry-driven approaches, Graasp facilitates collaboration and includes tools for learning analytics to track student engagement and progress.

Graasp is a non-lucrative association and the platform is open-source. It is used by several educational institutions in Switzerland and around the world, including universities, schools, and research organizations.

graasp.org

Role

Fullstack Developer, UI Designer

Technologies

React, Node.js, Typescript, PostgresQL, Cypress
Docker, AWS
Figma, Storybook

Period

2020 - now

Location

Ecublens and Salvan, Switzerland

Links

Development

At Graasp, I'm responsible for designing and implementing new features on the platform. I lead a small team of developers, managing projects and coordinating our work using agile practices. Each feature is thoughtfully designed, tested, and reviewed before it's deployed, following a clear workflow from development, staging and then to production. This approach helps us maintain quality while continuously improving the platform.

The frontend application is built using React.js and TypeScript. Although a separated React Native app (developed with Expo) was in progress for about a year, it was eventually deprecated in favor of enhancing responsive accessibility within the web application.

Key libraries and tools used in the project include Material-UI for design components, React Query for data fetching, Storybook for UI development, and Cypress for end-to-end testing.

The backend application is built using Node.js with the Fastify framework, chosen for its speed and low overhead. PostgreSQL serves as the primary relational database. The entire backend is containerized using Docker, ensuring consistent environments across development and production. Infrastructure as Code (IaC) practices are employed to manage and automate deployment on AWS.

landing

Landing Page

library

Home page of the Library

library

A learning activity shared in the Library

library

A learning activity in the Player

Pages

To enhance the user experience across the platform, we're developing a real-time collaborative WYSIWYG editor. Built with Lexical and Yjs, the editor aims to make content creation more intuitive and efficient. Users can easily add and format elements while immediately seeing how they will appear to readers, reducing friction in the editing process. Real-time collaboration allows multiple users to edit simultaneously, improving teamwork and overall productivity.

This work is still in progress and will be deployed soon.

Graasp pages wireframe desktop capsule summary

Desktop version of a Capsule Summary

Graasp pages wireframe desktop edit

Desktop version of the Edition View

Graasp pages wireframe desktop read

Desktop version of Read View

mobile home

Mobile view of a Capsule Summary

mobile edit

Mobile view of the Read View

mobile edit

Mobile view of a Draft Page

Library

The Library is a repository of open-source educational resources created by and for teachers. While its core feature is the powerful search among resources, the homepage originally lacked clarity and didn't effectively communicate the richness of its content. To address this, a new homepage was designed to better showcase what the Library offers. It features prominent, content-rich collections curated within Graasp, offering immediate value to educators. Key statistics and trending topics highlight the diversity and educational focus of the platform. Additionally, sections for recently added and most liked collections reflect community activity and engagement, bringing the platform's dynamic nature to the forefront.

This work is still in progress and will be deployed soon.

Proposition for the landing page for the Library

Proposition for the landing page for the Library

Landing page for the Library as of 9.25

Landing page for the Library as of 9.25