Actiontypes
Project cover
PROJECT FILE / SOFTWARE

Actiontypes

Student personality-type questionnaire and team dashboard

A solo-built questionnaire where students answer paired statements and teachers see their personality-type results, later extended with team assignment and charts.

PROJECT NOTES

Goal

Pass the individual retake of WP-3 by building Actiontypes: students answer paired statements, and teachers review the calculated personality-type results when organizing classes and project teams.

I also used the assignment to try unfamiliar technologies and take the app further than the basic questionnaire.

Constraints

The brief required a questionnaire that fetched statements and saved each answer through JavaScript and a REST API, backed by a SQL database. Students had to be able to resume an unfinished questionnaire, while a completed one couldn't be submitted again.

Teacher pages needed authentication and had to connect student records, answers, results, classes and teams. The supplied statement and student data had to be imported into the database.

The original brief specified a Python backend. I began with Flask and later migrated the app to Astro and TypeScript.

Process

I started with a Flask backend (SQLite models, database setup, REST endpoints) and a React frontend that turned into a Next.js app, with student and teacher login, the questionnaire and dashboard work.

Later I migrated everything to Astro with TypeScript, React components and Astro DB, using Lucia for authentication and sessions, and Tailwind CSS with shadcn/ui for the interface.

For students: questionnaire retrieval and answer submission through API routes, checks that stop a completed questionnaire being submitted again, and calculating and storing the four-letter result.

For teachers: a student dashboard and detail pages to create, edit and delete students, inspect answers, reset questionnaires and pick teams. Repeated interaction and auth logic got pulled out into shared helpers.

Later additions were team and member API endpoints, a team dashboard, radar charts for students and teams, and automatic team assignment based on the questionnaire results.

Result

I passed the individual retake with distinction. My teacher responded positively and recommended reading about programming paradigms and test-driven development as next steps.

I kept developing the app after the assessment, including the migration and the later team management, assignment and chart features, so the finished app goes beyond what was assessed.