SvelteKit · TypeScript · CSS
Frontend architecture & navigation
I developed a large portion of the SvelteKit and TypeScript frontend: the application frame, reusable views, sidebar navigation, active states, and responsive layout refinements. The structure covered dashboard, users, courses, analytics, account, chat, help, and admin areas, with navigation changing appropriately by role.
Microsoft authentication · sessions
Authentication experience
I designed the FlashLine-inspired login interface and integrated the frontend with Rocky’s existing Microsoft authentication flow. I worked with session-user data, frontend authentication state, and local-development fallbacks to make authentication function correctly across the application. The underlying Microsoft OAuth system was part of the team’s shared backend infrastructure.
Chat UI · Markdown · API integration
AI chat, from prototype to product
I first built a separate Svelte chat prototype to explore message design, API-key authentication, and request/response behavior with Gemini for testing. I then brought that learning into Rocky’s user-facing chat: authenticated requests, loading and error states, Markdown responses, automatic scrolling, starter prompts, and conversation-history support where implemented.
Flask · API keys · REST APIs
Chat access & service integration
To support chat access, I completed selected Flask changes that ensured a user-level chat key existed after account creation or Microsoft sign-in. The key was associated with the user as a personal owner and used to prevent authenticated users from entering chat without the needed access. I connected the frontend through Rocky’s API and chat proxy rather than directly to the team-managed model service.
Documentation UX · role-aware UI
Help, API docs & administrative views
I turned Help into a clearer documentation hub with resource cards, category-based guidance, Markdown content, and previous/next navigation. I also built beginner-oriented API-key and user-management guides, developer examples, and the role-protected Admin Panel entry and interface, leaving administrative logs clearly as future work.