KonBase is a comprehensive inventory and convention management system built for associations that organize events and need to track their equipment and supplies.
- Association registration and profile management
 - Inventory management with categorization and location tracking
 - User management with permission levels
 - Warranty and documentation tracking
 - Equipment sets management
 - Import/export functionality
 - Local backup capabilities
 
- Create convention from association template
 - Equipment issuing and return tracking
 - Consumable items tracking
 - Room/location mapping
 - Requirements gathering and fulfillment tracking
 - Comprehensive logging of all actions
 - Reports generation
 - Post-convention archiving
 
- Role-based access control
 - Super-admin role with full system access
 - Enhanced security for log files
 - Two-factor authentication for sensitive operations
 - Data encryption for sensitive information
 
KonBase is built using modern web technologies:
- React - A JavaScript library for building user interfaces
 - TypeScript - Static typing for better developer experience
 - Vite - Next generation frontend tooling
 - Tailwind CSS - Utility-first CSS framework
 - shadcn/ui - Reusable UI components built with Radix UI and Tailwind CSS
 - React Router - Routing library for React
 - Lucide Icons - Beautiful open source icons
 - React Hook Form - Form validation
 - Recharts - Data visualization components
 
- Supabase - Open source Firebase alternative
- PostgreSQL database
 - Authentication
 - Storage
 - Edge Functions
 - Realtime subscriptions
 
 - Tanstack Query - Asynchronous state management
 
- GitHub Pages - For static site hosting
 - GitHub Actions - CI/CD for automatic deployment
 
- Node.js (v16 or higher)
 - Supabase account (for database and authentication)
 
- Create a Supabase project at supabase.com
 - Run the database schema setup script from the 
schema.sqlfile in the SQL editor - Configure authentication providers as needed
 - Get your Supabase URL and anonymous key
 
- 
Clone the repository
git clone https://github.com/ShiroLuxferre/KonBase.git cd konbase - 
Install dependencies
npm install - 
Create an
.envfile with your Supabase credentialsVITE_SUPABASE_URL=your_supabase_url VITE_SUPABASE_ANON_KEY=your_supabase_anon_key - 
Start the development server
npm run dev - 
Build for production
npm run build 
This project uses Supabase as its backend. To connect your local development environment to your remote Supabase project, follow these steps:
- 
Install Supabase CLI: If you haven't already, install the Supabase CLI. Follow the official instructions for your operating system: Supabase CLI Installation
 - 
Log in to Supabase: Open your terminal (Powershell in your case) and log in to your Supabase account:
supabase login
This will open a browser window for authentication.
 - 
Link your Project: Navigate to the root directory of this project (
konbase-open-source) in your terminal and link it to your remote Supabase project:supabase link --project-ref YOUR_PROJECT_REF
Replace
YOUR_PROJECT_REFwith your actual Supabase project reference ID. You can find this in your Supabase project's dashboard URL (e.g.,https://app.supabase.com/project/YOUR_PROJECT_REF) or in Project Settings -> General. - 
Set up Environment Variables: The application needs your Supabase Project URL and Anon Key to communicate with the backend.
- 
Create a
.envfile in the root of the project if it doesn't exist. - 
Add the following lines to the
.envfile:VITE_SUPABASE_URL=YOUR_SUPABASE_PROJECT_URL VITE_SUPABASE_ANON_KEY=YOUR_SUPABASE_ANON_KEY
 - 
Replace
YOUR_SUPABASE_PROJECT_URLandYOUR_SUPABASE_ANON_KEYwith the actual values from your Supabase project dashboard (Project Settings -> API). 
 - 
 - 
(Optional) Pull Remote Database Changes: If you have made changes to your remote database schema after linking, you might want to pull those changes to keep your local
supabase/migrationsfolder in sync (though this project currently usesschema.sqlfor initial setup):supabase db pull
Note: Be cautious with this command if you have local migration files you haven't applied remotely.
 - 
Run the Application: You should now be able to run the application locally, and it will connect to your remote Supabase instance.
npm run dev
 
Since the first-time setup wizard has been removed, follow these steps to set up your Supabase database manually:
- Navigate to your Supabase project dashboard.
 - Go to the SQL Editor.
 - Click "New query".
 - Copy the entire content of the 
schema.sqlfile from this project. - Paste the content into the SQL Editor.
 - Run the query. This will create all necessary tables, roles, functions, and RLS policies.
 - Grant Super Admin:
- Sign up a user for your application (this will be your super admin).
 - Find the 
user_id(UUID) of this user in the Supabase Dashboard under Authentication -> Users. - Open the 
super_admin.sqlfile in this project. - Replace the placeholder 
'YOUR_USER_ID_HERE'with the actualuser_id. - Go back to the Supabase SQL Editor and create another "New query".
 - Copy the modified content of 
super_admin.sqland paste it into the editor. - Run the query.
 
 
Your database is now set up and connected to the application.
We welcome contributions to KonBase! Here's how you can help:
- Code Contributions: Fix bugs, add features, improve performance
 - Documentation: Improve or expand documentation
 - Bug Reports: Submit issues for any bugs you encounter
 - Feature Requests: Suggest new features or improvements
 - Testing: Help test the application and provide feedback
 
- Fork the repository
 - Create a new branch (
git checkout -b feature/amazing-feature) - Make your changes
 - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
 
- Follow the existing code style
 - Use TypeScript for type safety
 - Write tests for new features
 - Update documentation for significant changes
 
Follow the Conventional Commits specification:
feat:for new featuresfix:for bug fixesdocs:for documentationstyle:for code style changesrefactor:for code refactoringtest:for testschore:for build process or auxiliary tool changes
Join our community to get help, share ideas, and connect with other KonBase users:
- Discord: Join our Discord server for discussions and support
 - GitHub Issues: Report bugs or request features through GitHub Issues
 - Discussions: Participate in GitHub Discussions for general topics
 
If you find KonBase helpful, consider supporting the project:
- GitHub Sponsors: Support the development team directly through GitHub
 - Buy Me a Coffee: Buy us a coffee to fuel development
 
KonBase is licensed under the MIT License - see the LICENSE.md file for details.
Made with ❤️ by the KonBase community