A modern Q&A platform for developers and knowledge enthusiasts, built with React, TypeScript, and Supabase.
- π Authentication: Secure user registration and login with Supabase Auth
- β Ask Questions: Create detailed questions with rich text formatting
- π¬ Answer & Comment: Provide answers and engage in discussions
- β¬οΈ Voting System: Upvote/downvote questions and answers
- π·οΈ Tagging: Organize content with custom tags
- π Search: Find questions and answers quickly
- π€ User Profiles: Personalized user profiles with bio and avatar
- π± Responsive Design: Optimized for desktop and mobile devices
- π Theme Support: Dark and light mode toggle
- π Notifications: Real-time notifications for user interactions
- Node.js 16+ and npm/yarn/bun
- A Supabase account and project
-
Clone the repository
git clone https://github.com/EmoBot208/stackit-knowledge-flow.git cd stackit-knowledge-flow -
Install dependencies
npm install # or yarn install # or bun install
-
Set up environment variables
cp .env.example .env.local
Add your Supabase credentials:
VITE_SUPABASE_URL=your_supabase_url VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
-
Start the development server
npm run dev
-
Open your browser Navigate to
http://localhost:5173
- React 18 - Modern React with hooks and concurrent features
- TypeScript - Type-safe development
- Vite - Lightning-fast build tool and dev server
- Tailwind CSS - Utility-first CSS framework
- shadcn/ui - Beautiful and accessible React components
- React Router - Client-side routing
- TanStack Query - Server state management
- Lucide React - Beautiful icon library
- Supabase - Backend-as-a-Service
- PostgreSQL database
- Real-time subscriptions
- Authentication & authorization
- Row Level Security (RLS)
- Edge Functions
- @supabase/supabase-js - Supabase client
- react-hook-form - Form management
- date-fns - Date manipulation
- class-variance-authority - Component variants
- cmdk - Command menu
src/
βββ components/ # Reusable UI components
β βββ ui/ # shadcn/ui components
β βββ QuestionCard.tsx
β βββ AnswerCard.tsx
β βββ Navbar.tsx
β βββ RichEditor.tsx
βββ contexts/ # React contexts
β βββ AuthContext.tsx
β βββ ThemeContext.tsx
βββ hooks/ # Custom React hooks
βββ integrations/ # External service integrations
β βββ supabase/
βββ lib/ # Utility functions
βββ pages/ # Page components
β βββ HomePage.tsx
β βββ AskQuestionPage.tsx
β βββ QuestionDetailPage.tsx
β βββ ProfilePage.tsx
β βββ ...
βββ assets/ # Static assets
ποΈ Database Schema
The application is backed by the following primary tables:
profiles - Stores user profile details and metadata
questions - Contains questions created by users
answers - Stores user-submitted answers to questions
comments - Nested discussion under answers
votes - Upvote/downvote tracking for questions and answers
notifications - Real-time alerts for user activity
π¨ UI Components
Crafted using shadcn/ui components for a polished interface:
Forms & Inputs - With validation using react-hook-form
Cards & Tables - For clean data display
Navigation & Menus - Sidebar, dropdowns, and breadcrumbs
Modals & Dialogs - For interactions and confirmations
Toast Notifications - Non-intrusive user feedback
Dark Mode Toggle - Seamless theme switching experience
npm run dev # Start development server
npm run build # Build for production
npm run build:dev # Build for development
npm run lint # Run ESLint
npm run preview # Preview production build- ESLint - Code linting
- TypeScript - Static type checking
- Prettier - Code formatting (recommended)
Simply open Lovable and click on Share β Publish.
- Build the project:
npm run build - Deploy the
distfolder to your preferred hosting platform - Set up environment variables on your hosting platform
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
RUN npm run build
EXPOSE 5173
CMD ["npm", "run", "preview"]- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- shadcn/ui - For the amazing component library
- Supabase - For the backend infrastructure
- Lucide - For the beautiful icons
- Tailwind CSS - For the utility-first CSS framework
If you have any questions or need help, please:
- Open an issue on GitHub
- Contact the maintainer: EmoBot208
Built with β€οΈ by EmoBot208