Employee Dashboard: Intern Project with SvelteKit and Tailwind CSS
I recently completed an exciting internship at Netcetera, where I worked closely with a team of talented professionals to develop impactful digital solutions. This experience provided me with invaluable insight into collaborative design and development processes.
During my internship at Netcetera, I worked on developing user-centric web applications using modern technologies like SvelteKit and Tailwind CSS. One of my main responsibilities was implementing the Employee Dashboard, where I turned the provided design into a fully functional front-end. This experience allowed me to contribute to real-world projects while learning best practices in UX design, coding, and project collaboration.
The Employee Dashboard is a tool designed to help team leaders and employees set, track, and achieve their professional goals. It provides a way to manage goals, receive feedback, track team progress, and document important notes—all in one place. The core idea behind the Employee Dashboard is to make goal management and performance tracking easier for both employees and their team leaders.
Carefully studying the design to identify all reusable components, such as buttons, cards, tooltips, badges, input fields. etc. This was essential to ensure consistency and reusability across the entire application.
After building the components, I integrated them into the layout of each page—for example. Each page was constructed by composing the individual components into a cohesive design.
The following image shows a few selected components from the project, out of many available, highlighting specific elements to showcase their functionality and visual design within the overall dashboard.
One of the more challenging tasks I faced during my internship was building the card component for the Employee Dashboard. Although the designs were provided by a talented designer, it was up to me to bring these designs to life using SvelteKit and Tailwind CSS. The card component was a crucial part of the application, as it needed to be flexible enough to handle multiple use cases like goals, feedback, team progress, and notes.
The card component was designed to be adaptable, so I built it with three main slots:
The image below represents an overview of a few of these card components in action, showcasing their different states and adaptations.
I made the component even more adaptable by introducing props that controlled its behavior and appearance. For example, a prop could show or hide the progress bar on a goals card or display for example a status label like “Draft” or “Expired” on a feedback card. This way, the same base component could serve different purposes, depending on the data passed to it.
Consistency was crucial for the dashboard’s overall user experience. I studied the designs carefully to identify common patterns and elements, such as buttons, icons, badges, etc. By developing these as separate, reusable components, I was able to integrate them into the card and other parts of the dashboard, streamlining development and keeping the UI cohesive.