01 Profile Dashboard
Your personal command center for reboot01 learning analytics.
Progress insights β’ XP analytics β’ Audit performance β’ Real-time sync β’ Beautiful charts
Live Demo β’ Highlights β’ Tech Stack β’ Get Started β’ Screenshots
Why this dashboard exists (read the story)
Hey there! π Welcome to the 01 Profile Dashboard - your personal command center for tracking progress at reboot01. This isn't just another dashboard; it's a comprehensive tool that helps students like you understand their learning journey, celebrate achievements, and identify areas for growth.
Built with modern web technologies, this dashboard connects to the reboot01 platform to give you real-time insights into your coding education. Whether you're grinding through projects, participating in peer reviews, or climbing the XP leaderboard, this dashboard makes it easy to see exactly where you stand and where you're heading.
Think of it as your personal learning analytics platform - showing you not just what you've done, but helping you understand patterns in your progress, compare your performance with peers, and make data-driven decisions about your learning path.
- Clear learning analytics: XP, projects, audits, and trends presented in a way thatβs easy to read and compare over time.
- GraphQL + Apollo Client: Structured queries with caching and request batching to keep the dashboard responsive.
- Responsive UI: Works well across screen sizes, with charts and interactions that stay smooth.
- JWT auth flow: Token-based login with refresh handling and careful credential usage.
- Vercel-friendly setup: Simple deployment workflow with environment-based configuration.
Try it out now: 01-dashboard-kappa.vercel.app/
Experience the dashboard live with your reboot01 credentials!
- Features
- Tech Stack
- Database Schema (ERD)
- Screenshots
- Project Structure
- Getting Started
- Configuration
- Contributing
- License
- Author
- Acknowledgments
β¨ What Makes This Dashboard Special
Deep Progress Insights
The dashboard aggregates your reboot01 activity using 30+ GraphQL queriesβprojects, audits, XP, and timelinesβso you can see your progress in one place.
XP Tracking (with useful breakdowns)
XP is broken down by project type, difficulty, and time range. This makes it easier to spot where most of your effort goes and how your activity changes over time.
Audit Analytics
Track audit ratio and review activity to understand how you perform as both reviewer and reviewee. The goal here is clarity: whatβs happening, when, and how it trends.
Project Analysis
View completion patterns and outcomes across different project types and difficulty levels to highlight strengths and areas to improve.
Caching & re-use
Apollo Client caching helps reduce repeated fetching, so returning to pages feels faster.
Request batching
Multiple queries are batched where possible to reduce network overhead and improve perceived speed.
Graceful error handling
Common issues (timeouts, network drops) are handled with retries and readable messages instead of breaking the experience.
Authentication you can trust
JWT-based login with refresh handling keeps sessions stable without frequent re-logins.
Charts that support the data
Custom SVG charts visualize XP trends, audit performance, and project patterns in a way that stays readable on different screen sizes.
Responsive layout
Built mobile-first and designed to work comfortably on desktop, tablet, and phone.
Real-time sync
As your reboot01 data changes (projects, XP, audits), the dashboard updates without needing a manual refresh.
UI polish
Motion and micro-interactions are used sparingly to keep the interface clean while still feeling modern.
π οΈ The Technology Behind the Magic
This project uses a modern front-end stack and a GraphQL data layer to keep the UI responsive and the codebase maintainable:
- React 19: Component-based UI with modern rendering features for smooth interactions
- Vite: Fast dev server and build tooling
- Tailwind CSS: Utility-first styling for consistent, responsive layouts
- React Context API: Simple, effective state management for user preferences and app-wide settings
- Apollo Client: GraphQL client for queries, caching, and synchronization
- Apollo Client Advanced Features: Apollo's caching and query batching help keep data fresh and network usage efficient.
- Framer Motion: Motion and micro-interactions for UI polish
- Custom SVG Charts: We built our own chart components using SVG for crisp, scalable visualizations that work perfectly on any screen size
- JWT Authentication: Token-based auth with refresh handling
- Lucide React Icons: Beautiful, consistent iconography that scales perfectly and matches our design system
- Vercel: Deployment with environment variable configuration
π reboot01 Database Schema & GraphQL API (ERD + Queries)
The reboot01 platform uses a PostgreSQL database with a comprehensive GraphQL API. This section explains the actual database structure, relationships, and how to query the data using GraphQL.
Based on the actual GraphQL queries and database structure, here are the main entities:
erDiagram
user ||--o{ transaction : "earns"
user ||--o{ progress : "achieves"
user ||--o{ result : "obtains"
user ||--o{ audit : "performs/receives"
user ||--o{ group_user : "participates_in"
user ||--o{ event_user : "attends"
user ||--o{ group : "leads_as_captain"
object ||--o{ transaction : "associated_with"
object ||--o{ progress : "tracked_for"
object ||--o{ result : "evaluated_for"
object ||--o{ group : "organized_into"
object ||--o{ event : "scheduled_for"
event ||--o{ transaction : "generates"
event ||--o{ progress : "enables"
event ||--o{ result : "produces"
event ||--o{ group : "hosts"
event ||--o{ event_user : "attended_by"
group ||--o{ progress : "achieves"
group ||--o{ result : "obtains"
group ||--o{ audit : "undergoes"
group ||--o{ group_user : "composed_of"
user {
INTEGER id PK
VARCHAR login UK
VARCHAR firstName
VARCHAR lastName
DECIMAL auditRatio
INTEGER totalUp
INTEGER totalDown
VARCHAR campus
TEXT profile
JSONB attrs
TIMESTAMP createdAt
TIMESTAMP updatedAt
}
transaction {
INTEGER id PK
VARCHAR type
INTEGER amount
VARCHAR path
VARCHAR campus
JSONB attrs
TIMESTAMP createdAt
INTEGER userId FK
INTEGER objectId FK
INTEGER eventId FK
}
progress {
INTEGER id PK
DECIMAL grade
BOOLEAN isDone
VARCHAR path
VARCHAR version
TIMESTAMP createdAt
TIMESTAMP updatedAt
INTEGER userId FK
INTEGER objectId FK
INTEGER groupId FK
INTEGER eventId FK
}
result {
INTEGER id PK
DECIMAL grade
VARCHAR type
BOOLEAN isLast
VARCHAR path
VARCHAR version
TIMESTAMP createdAt
INTEGER userId FK
INTEGER objectId FK
INTEGER groupId FK
INTEGER eventId FK
}
audit {
INTEGER id PK
DECIMAL grade
VARCHAR version
JSONB attrs
TIMESTAMP endAt
TIMESTAMP createdAt
TIMESTAMP updatedAt
INTEGER auditorId FK
INTEGER groupId FK
INTEGER resultId FK
}
group {
INTEGER id PK
VARCHAR status
VARCHAR path
VARCHAR campus
TIMESTAMP createdAt
TIMESTAMP updatedAt
INTEGER captainId FK
INTEGER objectId FK
INTEGER eventId FK
}
event {
INTEGER id PK
VARCHAR path
VARCHAR campus
TIMESTAMP createdAt
TIMESTAMP endAt
INTEGER objectId FK
}
object {
INTEGER id PK
VARCHAR name
VARCHAR type
JSONB attrs
TIMESTAMP createdAt
TIMESTAMP updatedAt
VARCHAR campus
INTEGER authorId FK
}
group_user {
INTEGER id PK
INTEGER userId FK
INTEGER groupId FK
TIMESTAMP createdAt
TIMESTAMP updatedAt
}
event_user {
INTEGER id PK
INTEGER userId FK
INTEGER eventId FK
INTEGER level
TIMESTAMP createdAt
}
-
user β transaction: Users earn XP and other rewards through transactions
-
user β progress: Users achieve progress on projects and exercises
-
user β result: Users obtain evaluation results from assessments
-
user β audit: Users perform audits (as auditors) and receive audits (as auditees)
-
user β group_user: Users participate in groups
-
user β event_user: Users attend events and achieve levels
-
user β group: Users can be captains of groups
-
object β transaction: Objects (projects) are associated with XP transactions
-
object β progress: Objects have progress tracking
-
object β result: Objects have evaluation results
-
object β group: Objects are organized into groups
-
object β event: Objects are scheduled as events
-
event β transaction: Events generate XP transactions
-
event β progress: Events enable progress tracking
-
event β result: Events produce evaluation results
-
event β group: Events host groups
-
event β event_user: Events have participants with levels
-
group β progress: Groups achieve collective progress
-
group β result: Groups obtain evaluation results
-
group β audit: Groups undergo peer audits
-
group β group_user: Groups consist of members
All queries require JWT authentication via Bearer token header.
Get your own user data:
{
user {
id
login
firstName
lastName
auditRatio
totalUp
totalDown
campus
}
}Get specific user by ID:
query GetUser($id: Int!) {
user_by_pk(id: $id) {
id
login
firstName
lastName
auditRatio
}
}Get your XP transactions:
{
transaction(where: {type: {_eq: "xp"}}, order_by: {createdAt: desc}) {
id
amount
path
createdAt
objectId
eventId
}
}Get XP aggregates:
{
transaction_aggregate(where: {type: {_eq: "xp"}}) {
aggregate {
sum {
amount
}
avg {
amount
}
count
}
}
}Get your project progress:
{
progress(order_by: {createdAt: desc}) {
id
grade
isDone
path
createdAt
objectId
groupId
}
}Get your evaluation results:
{
result(order_by: {createdAt: desc}) {
id
grade
type
path
createdAt
objectId
}
}Get audits you've performed:
{
audit(where: {auditorId: {_eq: YOUR_USER_ID}}) {
id
grade
createdAt
groupId
resultId
}
}Get audits performed on your work:
{
audit(where: {result: {userId: {_eq: YOUR_USER_ID}}}) {
id
grade
createdAt
auditorId
}
}Get your groups:
{
group_user {
id
groupId
createdAt
group {
id
status
path
captainId
}
}
}Get your event participation:
{
event_user {
id
eventId
level
createdAt
event {
id
path
campus
}
}
}Get available projects:
{
object {
id
name
type
attrs
campus
}
}To explore the API interactively:
- Access GraphiQL: Visit
https://learn.reboot01.com/api/graphql-engine/v1/graphql(requires login) - Authentication: Include your JWT token in the request headers
- Explore Schema: Use the documentation explorer to see all available queries and types
- Test Queries: Write and test queries in real-time
- View Results: See exactly what data is returned
This project uses all required GraphQL query patterns:
- β
Simple queries:
user { id login } - β
Nested queries:
result { user { login } } - β
Queries with arguments:
user_by_pk(id: 123) - β
Where clauses:
transaction(where: {type: {_eq: "xp"}}) - β
Order by:
progress(order_by: {createdAt: desc}) - β
Aggregations:
transaction_aggregate { aggregate { sum { amount } } }
For complete database structure and relations, see:
This ERD and query examples accurately reflect the reboot01 platform's actual database structure and GraphQL API capabilities.
A central hub showing an overview of user stats, recent projects, and activity.
Detailed user profile with level progression, skills, and comprehensive statistics.
The project follows a feature-based architecture to ensure maintainability and scalability.
src/
βββ assets/ # Static assets like images and SVGs
βββ components/ # Reusable UI components (atomic design)
β βββ charts/ # Data visualization charts
β βββ dashboard/ # Components specific to the dashboard layout
β βββ ui/ # General-purpose UI elements (Button, Card, etc.)
βββ config/ # Application configuration (e.g., motion variants)
βββ contexts/ # React contexts for global state management
βββ graphql/ # GraphQL client, queries, and type definitions
βββ hooks/ # Custom React hooks for reusable logic
βββ pages/ # Top-level page components
βββ store/ # State management stores (e.g., Zustand, Redux)
βββ styles/ # Global styles and CSS
βββ types/ # TypeScript type definitions
βββ utils/ # Utility functions and helpers
Getting started is straightforward.
Make sure you have the following:
- Node.js 18 or higher - The runtime that powers modern JavaScript applications
- npm - Comes bundled with Node.js, handles package management
- reboot01 account - You'll need your login credentials to access the platform data
1. Get the Code
git clone <repository-url>
cd 01-dashboardThis downloads all the project files to your computer and navigates into the project directory.
2. Fire Up the Development Server
./run.sh devThe script installs dependencies, prepares the environment, and starts the development server.
3. Open Your Dashboard
Point your browser to http://localhost:5173 - that's where your dashboard lives during development.
4. Sign In Log in using your reboot01 credentials. The dashboard fetches your data through the reboot01 API.
The run.sh script is your command center for common tasks:
./run.sh dev # π Start development server - your go-to for coding
./run.sh test # β
Run all tests to ensure everything works
./run.sh build # π¦ Create production build for deployment
./run.sh deploy # π Deploy to hosting platform (when ready)
./run.sh help # β Show all available commands and optionsPro tip: During development, keep ./run.sh dev running in one terminal. It automatically reloads when you make changes - no need to restart manually!
π§ Configuration & Customization
The dashboard is designed to be highly configurable without touching the code. Everything is controlled through environment variables, making it easy to customize for different environments or personal preferences.
1. Create Your Configuration File
cp .env.example .envThis creates your personal configuration file based on our example template.
2. Customize to Your Needs
Open the .env file and adjust the settings. Don't worry - we've included helpful comments explaining what each variable does!
Here's what you can customize:
π API & Data Connections
VITE_API_BASE_URL- Where your reboot01 API livesVITE_GRAPHQL_ENDPOINT- The GraphQL endpoint for data queries- Control timeouts, retry logic, and connection settings
π Authentication & Security
VITE_AUTH_TOKEN_KEY- How we store your login tokensVITE_AUTH_TOKEN_EXPIRY- When tokens should refresh automatically- Security settings to keep your data safe
π¨ Look & Feel
VITE_THEME_PRIMARY- Your main brand colorVITE_THEME_SECONDARY- Accent colors for highlights- Dark/light mode preferences and custom styling
β‘ Performance & Features
VITE_FEATURE_ADVANCED_CHARTS- Enable/disable advanced visualizationsVITE_FEATURE_REALTIME_UPDATES- Control live data synchronizationVITE_CACHE_ENABLED- Smart caching for faster loadingVITE_DEFAULT_PAGE_SIZE- How many items to show per page
The dashboard works seamlessly across different environments:
- Development - Your local setup with hot reloading and detailed logging
- Staging - Test environment that mirrors production
- Production - Optimized for speed and reliability
Each environment can have its own configuration, so you can safely test changes before going live.
- Start Simple: Most users only need to set the API endpoints and authentication settings
- Environment Variables: Never commit your
.envfile - it contains sensitive information - Documentation: Check the comments in
.env.examplefor detailed explanations - Testing Changes: Restart your dev server after configuration changes to see them take effect
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a new feature branch (
git checkout -b feature/your-feature-name). - Make your changes.
- Add tests if applicable.
- Commit your changes (
git commit -m 'Add some feature'). - Push to the branch (
git push origin feature/your-feature-name). - Submit a pull request.
This project is licensed under the MIT License. See the LICENSE.md file for details.
Sayed Ahmed Husain
- Email: [email protected]
π Acknowledgments
Thanks to the communities and tools belowβthis project relies on their documentation and open-source work.
- The Heart of Our Data: Huge gratitude to the reboot01 platform for providing the comprehensive GraphQL API that powers all our analytics. Your well-structured database and thoughtful API design made building this dashboard an absolute pleasure.
- Learning Environment: Thank you for creating such an innovative coding education platform that challenges and inspires students worldwide.
- Community: The reboot01 community of learners, mentors, and staff who make the platform what it is today.
Material Design 3 has been our guiding light for creating beautiful, accessible, and intuitive user interfaces. Here's how we've incorporated their principles:
- Responsive Design: Mobile-first approach ensuring the dashboard works flawlessly across all device sizes
- Accessibility First: High contrast ratios, proper focus states, and screen reader support
- Consistent Spacing: Using the Material Design token system for harmonious layouts
- Meaningful Motion: Subtle animations that enhance user experience without being distracting
- Material Design Guidelines - The foundation of our design system
- Material Design Components - Inspiration for our UI component library
- Material Design Icons - Consistent iconography throughout the app
- Material Color System - Our color palette and theming approach
- Material Typography - Font scales and text styling
- Material Elevation - Surface and shadow system
π― Design Tokens Used:
βββ Color: Dynamic color system with light/dark themes
βββ Typography: Display, headline, title, body scales
βββ Spacing: 4px baseline grid system
βββ Elevation: 5 levels of surface shadows
βββ Shape: Rounded corners and border radius system
- React 19: Thank you for pushing the boundaries of what's possible with modern React features
- Vite: Lightning-fast development experience that makes coding enjoyable
- Framer Motion: Beautiful animations that bring our interfaces to life
- React Router: Seamless navigation and routing capabilities
- Tailwind CSS: Utility-first CSS that enabled rapid, consistent styling
- Lucide Icons: Beautiful, customizable icon set that matches our design language
- Radix UI: Accessible, unstyled components that form the foundation of our UI
- Apollo Client: Intelligent GraphQL client with caching and performance optimizations
- GraphQL: The query language that makes our data fetching elegant and efficient
- Hasura GraphQL Engine: The powerful GraphQL API that serves the reboot01 platform
- TypeScript: Type safety that catches errors before they reach production
- ESLint & Prettier: Code quality and consistency tools
Thanks to the maintainers and contributors behind these open-source projects.
- Reboot01 Documentation: Comprehensive guides that helped us understand the platform
- React Documentation: Always reliable and well-written
To the reboot01 Bahrain campus community for the inspiration and feedback during development. Your enthusiasm for learning and coding excellence drives us to create better tools.
Built with β€οΈ for the reboot01 community.
β If you find this project useful, please give it a star!
.png)
.png)
.png)
.png)
