Project Specification Document
Version 1.0 | April 2025
STEAM-Labz is envisioned as a comprehensive platform for creators, makers, educators, and anyone interested in learning and sharing knowledge in STEAM (Science, Technology, Engineering, Arts, and Mathematics) disciplines. The platform aims to lower barriers to entry, provide access to resources, and foster a community-driven approach to STEAM education.
To create an inclusive community platform that democratizes access to STEAM education through open collaboration, knowledge sharing, and innovative resources, empowering the next generation of creators, makers, and educators.
The STEAM-Labz initiative was founded by Travis Bowman, with a vision to create a platform that supports education, collaboration, and innovation in STEAM disciplines.
The platform is designed to serve a diverse audience including students, educators, hobbyists, professional makers, researchers, and anyone interested in STEAM education and projects.
STEAM-Labz will be built using a microservices architecture to ensure modularity, scalability, and maintainability. The system will consist of the following major components:
┌──────────────────────────────────────────────────────────────────┐ │ Client Layer │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ Browser │ │ PWA │ │ Mobile │ ... │ API │ │ │ │ │ │ │ │ App │ │ Clients │ │ │ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │ └───────────────────────────┬──────────────────────────────────────┘ │ ┌───────────────────────────┼──────────────────────────────────────┐ │ ▼ │ │ Presentation Layer │ │ ┌──────────────────────────────────────────────────────────┐ │ │ │ API Gateway │ │ │ └─────────┬─────────────┬─────────────┬─────────────┬──────┘ │ │ │ │ │ │ │ │ ┌─────────┼─────────────┼─────────────┼─────────────┼──────┐ │ │ │ │ │ │ │ │ │ │ │ Authentication CDN Caching Rate Limit │ │ │ │ │ │ │ └──────────────────────────────────────────────────────────┘ │ └───────────────────────────┬──────────────────────────────────────┘ │ ┌───────────────────────────┼──────────────────────────────────────┐ │ ▼ │ │ Service Layer │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ User │ │ Project │ │ Course │ │ Video │ │ │ │ Service │ │ Service │ │ Service │ │ Service │ │ │ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │ │ │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ Forum │ │ Payment │ │ Search │ │ Admin │ │ │ │ Service │ │ Service │ │ Service │ │ Service │ │ │ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │ └───────────────────────────┬──────────────────────────────────────┘ │ ┌───────────────────────────┼──────────────────────────────────────┐ │ ▼ │ │ Data Layer │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ MySQL │ │ MongoDB │ │ Redis │ │ File │ │ │ │ Database │ │ Database │ │ Cache │ │ Storage │ │ │ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │ │ │ │ ┌──────────────────────┐ ┌──────────────────────────┐ │ │ │ Search Index │ │ Message Queue │ │ │ │ (Elasticsearch) │ │ (RabbitMQ/Kafka) │ │ │ └──────────────────────┘ └──────────────────────────┘ │ └──────────────────────────────────────────────────────────────────┘
All client-server communication will be handled through RESTful APIs and WebSockets for real-time features. The API Gateway will serve as the single entry point for all client requests, handling authentication, rate limiting, and request routing.
Services will communicate with each other through both synchronous (HTTP/gRPC) and asynchronous (message queue) methods, depending on the operation:
Data will flow through the system as follows:
STEAM-Labz will be deployed using a hybrid approach:
The networking infrastructure will include:
Comprehensive monitoring and logging will be implemented:
High school science teacher looking for innovative ways to engage students
Tech-savvy high school student interested in engineering and coding
Hobbyist engineer who enjoys building DIY electronics and IoT devices
Mother of two looking for educational activities to do with her children
Stage | Actions | Thoughts/Feelings | Touchpoints |
---|---|---|---|
Discovery |
|
"I hope I can find projects that fit my curriculum needs and budget." |
|
Registration |
|
"I appreciate the educator-specific options. This might be valuable for my classroom." |
|
Search |
|
"These filters are helpful. I like that I can see the cost and time estimates upfront." |
|
Evaluation |
|
"This project looks promising, but I want to make sure it works in a classroom setting." |
|
Preparation |
|
"I'm getting excited to try this with my students. The community feedback is reassuring." |
|
Implementation |
|
"The students are really engaged! The step-by-step instructions are clear even for beginners." |
|
Feedback |
|
"I'm happy to contribute back to the community. This platform has been a great resource for my teaching." |
|
Stage | Actions | Thoughts/Feelings | Touchpoints |
---|---|---|---|
Discovery |
|
"These projects look really cool! I wonder if I could make something like this." |
|
Registration |
|
"I like that I can show my interests and skills in my profile." |
|
Course Selection |
|
"This looks like a good place to start. I've been wanting to learn Arduino." |
|
Learning |
|
"This is challenging but fun. I like that I can go at my own pace." |
|
Forum Participation |
|
"The community is supportive. I'm getting good advice from more experienced users." |
|
Project Creation |
|
"I'm proud of what I've made! It's not perfect, but it works, and I learned a lot." |
|
Sharing & Feedback |
|
"Getting positive feedback feels great! I'm already thinking about my next project." |
|
STEAM-Labz Site Structure | ├── Home | ├── Hero/Mission Statement | ├── Featured Projects | ├── Featured Courses | ├── Latest Stream-Labz Videos | ├── Community Highlights | └── Support/Donation CTA | ├── Projects | ├── Featured Projects | ├── Project Categories | | ├── Science | | ├── Technology | | ├── Engineering | | ├── Art | | └── Math | ├── Project Search & Filters | ├── Project Detail Pages | └── Create Project | ├── Courses | ├── Featured Courses | ├── Course Categories | | ├── Science | | ├── Technology | | ├── Engineering | | ├── Art | | └── Math | ├── Course Search & Filters | ├── Course Detail Pages | └── Create Course | ├── Stream-Labz | ├── Featured Videos | ├── Live Streams | ├── Video Categories | ├── Creator Spotlights | ├── Video Detail Pages | └── Start Streaming | ├── Community | ├── Discussion Categories | ├── Popular Threads | ├── Recent Activity | ├── Forum Guidelines | ├── Thread Detail Pages | └── User Profiles | ├── About | ├── Mission & Vision | ├── Team & Founder | ├── Partners & Collaborators | ├── Success Stories | └── Contact Information | ├── Support | ├── Why Support STEAM-Labz | ├── Donation Options | ├── Sponsorship Opportunities | ├── Current Funding Status | └── Impact Reports | ├── Documentation | ├── Getting Started Guides | ├── Platform Documentation | ├── API References | ├── Contribution Guidelines | └── Tutorials | ├── User Account | ├── Dashboard | ├── Profile | ├── My Projects | ├── My Courses | ├── Saved Content | └── Settings | └── Admin ├── Dashboard ├── User Management ├── Content Moderation ├── Analytics ├── System Configuration └── Funding Management
Documented DIY creations and builds from community members.
Structured educational content with sequential learning modules.
Educational and instructional video content hosted on Stream-Labz.
Community discussions, questions, and knowledge sharing.
Primary Blue
#1a5b8e
Teal Blue
#007d8c
Vibrant Orange
#ff6b35
Amber
#f9a826
Light Gray
#f5f5f5
Medium Gray
#9e9e9e
Dark Gray
#424242
Near Black
#121212
Science Purple
#6a1b9a
Technology Blue
#1565c0
Engineering Orange
#e65100
Art Pink
#ad1457
Math Green
#2e7d32
Error Red
#d32f2f
Success Green
#388e3c
Info Blue
#0288d1
Used for headings, navigation, and emphasis.
Heading 1
2.5rem (40px), Bold
Heading 2
2rem (32px), Bold
Heading 3
1.75rem (28px), Semibold
Heading 4
1.5rem (24px), Semibold
Heading 5
1.25rem (20px), Medium
Used for body text, paragraphs, and UI elements.
Body Regular
1rem (16px), Regular
Body Medium
1rem (16px), Medium
Small Text
0.875rem (14px), Regular
Extra Small / Caption
0.75rem (12px), Regular
Used for code blocks, technical content, and tabular data.
Code Regular
1rem (16px), Regular
Code Small
0.875rem (14px), Regular
A brief description of the project and what it entails.
Learn the fundamentals and advanced techniques.
Watch this tutorial to learn how to create a project.
Tab content would go here.
Success Message
Your project has been successfully created.
Information Message
Registration for the workshop is now open.
Warning Message
This project requires adult supervision.
Error Message
There was a problem uploading your file.
The STEAM-Labz platform will use a consistent icon system to enhance usability and visual appeal. Icons will be sourced from the Font Awesome library to ensure consistency and wide coverage of needed symbols.
Science
Technology
Engineering
Art
Math
Projects
Courses
Videos
The STEAM-Labz platform is committed to meeting WCAG 2.1 AA standards and ensuring an inclusive experience for all users.
React with Next.js
A React framework for server-side rendering and static site generation.
Tailwind CSS
A utility-first CSS framework for rapidly building custom designs.
Redux Toolkit
The official, opinionated toolset for efficient Redux development.
React Hook Form with Yup
Performant, flexible and extensible forms with validation.
React Query
Server state management library with caching, background updates, and stale data handling.
Custom Component Library
In-house component library built on top of Headless UI and Radix UI primitives.
Node.js with Express
JavaScript runtime with a popular web application framework.
Passport.js with JWT
Authentication middleware for Node.js with JSON Web Tokens.
MongoDB with Mongoose
NoSQL document database with an elegant MongoDB object modeling for Node.js.
Redis
In-memory data structure store for caching and message brokering.
Elasticsearch
Distributed, RESTful search and analytics engine.
MinIO (S3-compatible)
High-performance, S3-compatible object storage.
Docker
Platform for developing, shipping, and running applications in containers.
Kubernetes
Open-source system for automating deployment, scaling, and management of containerized applications.
GitHub Actions
Automation and CI/CD platform integrated with GitHub.
Prometheus and Grafana
Monitoring system and time series database with visualization platform.
ELK Stack
Elasticsearch, Logstash, and Kibana for log collection, storage, and visualization.
Cloudflare
Content delivery network, DDoS protection, and security services.
Git with GitHub
Distributed version control system with web-based hosting service.
ESLint, Prettier, and TypeScript
Static code analysis, code formatting, and type checking.
Jest, React Testing Library, and Cypress
JavaScript testing framework, component testing utility, and end-to-end testing tool.
Docusaurus
Documentation website generator developed by Facebook.
Swagger/OpenAPI
API documentation and specification framework.
Figma and Storybook