A web dashboard with movable widgets, including weather, traffic, calendar, and GitHub projects. Built with SvelteKit and designed to be hosted on Cloudflare Pages.
- 🎯 Movable Widgets: Drag and drop widgets to customize your dashboard layout
- 🌤️ Weather Widget: Displays current weather information
- 🚗 Traffic Widget: Shows traffic conditions for common routes
- 📅 Calendar Widget: Displays upcoming events and appointments
- 🐙 GitHub Personal Repositories: Shows your personal GitHub repositories when logged in
- 🏢 Organization Projects: Shows projects from all your GitHub organizations in tile format
- 🔐 GitHub OAuth: Sign-in to view your GitHub projects and organization repositories
- Node.js 20+
- npm
- Clone the repository:
git clone https://github.com/starspacegroup/dashboard.git
cd dashboard- Install dependencies:
npm install- Create a
.envfile based on.env.example:
cp .env.example .env-
(Optional) Configure GitHub OAuth:
- Go to GitHub Developer Settings
- Create a new OAuth App
- Set the callback URL to:
http://localhost:5173/auth/callback/github - Add your Client ID and Secret to the
.envfile - The app will request the following scopes:
read:user,user:email,read:org,repo
-
Start the development server:
npm run dev- Open http://localhost:5173 in your browser
To build for production:
npm run buildTo preview the production build:
npm run previewThis app is configured to deploy to Cloudflare Pages:
- Push your code to GitHub
- Connect your repository to Cloudflare Pages
- Use the following build settings:
- Build command:
npm run build - Build output directory:
.svelte-kit/cloudflare
- Build command:
- Add your environment variables in Cloudflare Pages settings:
GITHUB_IDGITHUB_SECRETAUTH_SECRETAUTH_TRUST_HOST=true
- Framework: SvelteKit 2
- Language: TypeScript
- Styling: CSS (Custom Properties)
- Authentication: Auth.js (NextAuth.js for SvelteKit)
- Deployment: Cloudflare Pages
- Adapter: @sveltejs/adapter-cloudflare
MIT

