Update: This site is not currently live while I change how I am hosting some sites from home.
This school year, my classroom went to space. Alongside the usual chaos of lesson planning, I wanted to create something interactive, gamified, and very “sci-fi” to tie into our new theme. What I ended up with is M.O.S. Valiant Inquiry — a custom web app where students earn achievements, track the International Space Station in real time, and chat with our ship’s AI about the cosmos.
I didn’t build it alone. In fact, I leaned heavily on Claude from @AnthropicAI for the coding side. My role was captain of the mission — guiding the build, setting requirements, and learning a fair bit of JavaScript, EJS templating, and server logic along the way — while Claude handled a lot of the heavy lifting in code generation.
🛠️ What It Does
Achievement tracking – Students can log in with a pseudonym and PIN to view their personal progress.
Team scores – Balanced scoring across Red, Blue, Green, and Yellow crews.
Live ISS tracking – Displays the station’s position and fun space facts.
Ship AI chat – An embedded LLM (my own small hosted model) that only talks about space.
Admin dashboard – Secure, PIN-hashed system for me to add students, grant achievements, and view progress analytics.
Our achievements range from simple “Welcome Aboard!” onboarding to special robotics challenges like Condiment Containment Specialist. Some are hidden and unlock automatically based on actions — like chatting with the AI or logging in for a week straight.
🔐 Privacy First
No student names or identifying info are stored. Each student is assigned a space-themed pseudonym, and only they (and I) know their PIN. Achievements are personal — no one can see another student’s progress.
Even PINs are hashed server-side, so if the database ever went missing, the codes wouldn’t be exposed. I learned a lot about secure handling of authentication data during this process, even if I couldn’t implement bcrypt hashing from memory yet.
🧠 What I Learned
JavaScript & EJS – I now understand how EJS templates pull dynamic data into HTML, even if I couldn’t yet build the whole thing from scratch without help.
Express app structure – How routes, middleware, and static files all connect in a Node.js environment.
Security basics – Why hashed credentials matter and how session handling works.
LLM integration – How to build an in-app chat interface and connect it to a model with a limited domain.
🤔 What’s Next
Right now, students earn points through in-class challenges and special events. I’d like to expand the app so they can also earn points inside the site — maybe by completing small science quizzes, mini space missions, or interactive simulations.
I also want to iterate on the AI assistant. It’s currently a basic “ask me about space” system, but I can see it growing into a true mission guide, giving custom hints or assigning bonus challenges.
🛰️ Try It Yourself
You can explore the login page, dashboard, and AI chat using a demo account:
Pseudonym: Nebula
PIN: 3798
This account is for demonstration only and contains no student information.
💡 Takeaways
Even though most of the code was co-written with an AI, this project taught me how to steer a complex build, understand the moving parts, and make informed decisions about architecture, security, and design. It’s the kind of “vibe coding” that works well for rapid prototyping — and for creating something magical for my students.
End result: I now have a fully functional, secure, space-themed classroom achievement tracker that my students are going to love — and a lot more confidence in tackling JavaScript and Node.js projects in the future.