A comprehensive resource management and tracking portal with Discord authentication and role-based access control. Perfect for gaming communities, organizations, and teams that need to track shared resources, inventory, or assets. It was designed for Dune Awakening, but technically this could be used to track anything. Currently the only auth is Discord and it works with a TursoDB (Which you can get for free) but in the future maybe we can add more database types. I originall made this for https://www.silverorder.org) there shouldn't be any references to that, but if there is feel free to submit a PR to fix them.
Honestly I leave this project in the hands of the open source community, if you can build it and it works, I'll approve the pull request 🙏
If you like what i did feel free to
- Discord OAuth Authentication - Secure login with Discord
- Role-Based Access Control - Permissions managed through Discord server roles
- Resource Management - Track quantities, categories, and changes with visual status indicators
- Activity Logging - Complete audit trail of all user actions with time filtering
- GDPR Compliance - Data export and deletion tools for privacy compliance
- Grid & Table Views - Multiple ways to view and manage resources
- Real-Time Updates - Live status changes and animations
- Interactive Charts - Resource history visualization with hover details
- Admin Controls - Target quantity management for authorized roles
- Responsive Design - Modern UI optimized for all devices
- Data Export - Users can download all their data in JSON format
- Data Deletion - Request anonymization of personal data
- Activity Transparency - View complete history of actions taken
- Privacy Controls - Clear data retention policies and user rights
- Click the "Fork" button at the top of this GitHub repository
- Clone your fork to your local machine:
git clone https://github.com/YOUR_USERNAME/ResourceTracker.git
cd ResourceTracker- Go to https://discord.com/developers/applications
- Click "New Application" and give it a name
- Go to OAuth2 → General:
- Copy the Client ID and Client Secret (save these for later)
- Go to OAuth2 → Redirects:
- Add redirect URI:
https://your-app-name.vercel.app/api/auth/callback/discord - Replace
your-app-namewith your planned Vercel app name
- Add redirect URI:
- Go to Bot (optional, for advanced Discord integration)
- Enable Developer Mode in Discord (User Settings → Advanced → Developer Mode)
- Right-click your Discord server → "Copy Server ID" (this is your
DISCORD_GUILD_ID) - Right-click on roles you want to use → "Copy ID" (for
DISCORD_ROLES_CONFIG)
- Go to https://turso.tech and sign up (free tier: 500 databases, 1B row reads/month)
- Click "Create Database"
- Choose a database name (e.g.,
resource-tracker-db) - Select the closest region to your users
- After creation, click on your database
- Copy the Database URL (starts with
libsql://) - Click "Create Token" and copy the Auth Token
- Go to https://vercel.com and sign up with your GitHub account
- Click "New Project" and import your forked repository
- In the deployment settings, add these Environment Variables:
# Discord OAuth (from Step 2)
DISCORD_CLIENT_ID=your_discord_client_id
DISCORD_CLIENT_SECRET=your_discord_client_secret
DISCORD_GUILD_ID=your_discord_server_id
# Discord Roles (single line JSON - see ENVIRONMENT.md for details)
DISCORD_ROLES_CONFIG=[{"id":"your_role_id","name":"Admin","level":100,"isAdmin":true,"canAccessResources":true}]
# NextAuth (generate with: openssl rand -base64 32)
NEXTAUTH_URL=https://your-app-name.vercel.app
NEXTAUTH_SECRET=your_long_random_secret_here
# Turso Database (from Step 4)
TURSO_DATABASE_URL=libsql://your-database.turso.io
TURSO_AUTH_TOKEN=your_turso_auth_token
# Optional: Customize branding
NEXT_PUBLIC_ORG_NAME=Your Community Name- Click Deploy
After deployment, you need to set up your database tables:
- Install Drizzle CLI locally:
npm install -g drizzle-kit- Clone your repository and install dependencies:
git clone https://github.com/YOUR_USERNAME/ResourceTracker.git
cd ResourceTracker
npm install- Create a
.env.localfile with your Turso credentials:
TURSO_DATABASE_URL=your_turso_database_url
TURSO_AUTH_TOKEN=your_turso_auth_token- Run the database migration:
npm run db:pushAdd some initial resources to test the app:
npm run populate-resources-safeGo back to your Discord application and update the redirect URI to match your deployed Vercel URL:
https://your-actual-vercel-url.vercel.app/api/auth/callback/discord
Your Resource Tracker is now running for free! Visit your Vercel URL and sign in with Discord.
Free Tier Limits:
- Vercel: 100GB bandwidth, unlimited projects
- Turso: 500 databases, 1B row reads, 1M row writes/month
- Discord: Unlimited OAuth usage
For local development:
- Install dependencies:
npm install-
Create a
.env.localfile with the environment variables (see ENVIRONMENT.md for details) -
Run database migrations:
npm run db:push- Start the development server:
npm run devThis application is designed to be easily customizable for any organization or community:
- Branding: Set
NEXT_PUBLIC_ORG_NAMEto customize organization name - Roles: Configure Discord roles via
DISCORD_ROLES_CONFIG - Resources: Modify resource categories and types to fit your needs
- Styling: Update themes and colors in Tailwind configuration
See ENVIRONMENT.md for all configuration options.
- Frontend: Next.js 14, React, TypeScript, Tailwind CSS
- Authentication: NextAuth.js with Discord provider
- Database: Turso (SQLite), Drizzle ORM
- Deployment: Vercel-ready
- Privacy: GDPR-compliant data handling
We welcome contributions! Please see CONTRIBUTING.md for guidelines on how to contribute to this project.
This project is open source. See LICENSE for more information.