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.sql
file 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
.env
file 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_REF
with 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
.env
file in the root of the project if it doesn't exist. -
Add the following lines to the
.env
file:VITE_SUPABASE_URL=YOUR_SUPABASE_PROJECT_URL VITE_SUPABASE_ANON_KEY=YOUR_SUPABASE_ANON_KEY
-
Replace
YOUR_SUPABASE_PROJECT_URL
andYOUR_SUPABASE_ANON_KEY
with 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/migrations
folder in sync (though this project currently usesschema.sql
for 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.sql
file 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.sql
file 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.sql
and 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