ProshnoBank is a comprehensive, modern online examination platform designed to revolutionize digital education. It provides an intuitive interface for students to take exams, teachers to manage question banks, and administrators to oversee the entire system.
β¨ Student Features
- π Take live and practice exams with real-time tracking
- π View detailed performance analytics and progress
- π Compete on leaderboards and earn achievements
- π¬ Ask doubts in an integrated forum
- π± Responsive design for all devices
π Teacher Features
- β Create and manage question banks with category-based organization
- π Setup and configure exam batches
- π₯ Monitor student performance and engagement
- π Generate comprehensive analytics reports
- π Role-based access control for secure management
π‘οΈ Admin Features
- π¨βπΌ Complete user management system
- π System-wide analytics and monitoring
- π¨ Theme and configuration management
- π Advanced security and permission controls
- π± Responsive admin dashboard
- React 18 - Modern UI library with hooks
- TypeScript - Type-safe development
- Vite - Next-generation build tool
- Tailwind CSS - Utility-first CSS framework
- shadcn/ui - High-quality React components
- React Router - Client-side routing
- React Query - Server state management
- Zustand - Client state management
- Supabase - Open-source Firebase alternative
- PostgreSQL - Robust relational database
- Row Level Security (RLS) - Database-level security
- ESLint - Code quality
- TypeScript Compiler - Type checking
- Vitest - Unit testing framework
- Vercel - Deployment platform
Before you begin, ensure you have the following installed:
- Node.js (v18.0.0 or higher)
- npm or yarn package manager
- Git for version control
git clone https://github.com/Creativity-Freaks/proshnobank.git
cd proshnobanknpm install# Copy the environment template
cp .env.example .env.local
# Edit .env.local with your values
# Required values:
# - VITE_SUPABASE_URL
# - VITE_SUPABASE_ANON_KEY
# - SUPABASE_SERVICE_ROLE_KEYnpm run devThe application will be available at http://localhost:5173
# Development server with hot reload
npm run dev
# Build for production
npm run build
# Build for development environment
npm run build:dev
# Preview production build
npm run preview
# Run ESLint code quality checks
npm run lint
# Type checking without emitting files
npm run typecheck
# Run tests in watch mode
npm run test:watch
# Run all tests once
npm run testproshnobank/
βββ src/
β βββ components/ # Reusable UI components
β β βββ admin/ # Admin-specific components
β β βββ teacher/ # Teacher-specific components
β β βββ routing/ # Route guard components
β β βββ ui/ # Shared UI components
β βββ pages/ # Page components
β βββ contexts/ # React Context providers
β βββ hooks/ # Custom React hooks
β βββ lib/ # Utility functions and helpers
β βββ integrations/ # Third-party integrations
β βββ test/ # Test files and utilities
β βββ App.tsx # Main App component
βββ public/ # Static assets
βββ supabase/ # Supabase migrations and functions
βββ scripts/ # Database and utility scripts
βββ index.html # HTML entry point
βββ package.json # Project dependencies
βββ vite.config.ts # Vite configuration
- Admin - Full system access and management
- Teacher - Can create exams and manage questions
- Student - Can take exams and view results
- JWT-based authentication via Supabase Auth
- Row Level Security (RLS) on database tables
- Role-based access control (RBAC)
- Secure password hashing
- Protected API endpoints
Key tables in the PostgreSQL database:
users- User accounts and profile informationexam_batches- Exam collections and metadataquestions- Question bank with multiple typesexam_submissions- Student exam responsesstudent_answers- Individual answer trackingcategories- Question categorizationlive_events- Real-time exam events
# Push to GitHub
git push origin main
# Vercel will auto-detect and deploy
# Configure environment variables in Vercel dashboardThe project can be deployed to:
- Netlify
- GitHub Pages
- Self-hosted servers
- Docker containers
We welcome contributions from the community! Please read our CONTRIBUTING.md for guidelines on:
- How to submit issues and feature requests
- Development setup and workflow
- Code style and standards
- Pull request process
We are committed to providing a welcoming and inclusive environment. Please review our CODE_OF_CONDUCT.md for our community standards.
Found a bug? Have a feature idea?
- π Report bugs on GitHub Issues
- π‘ Request features with detailed descriptions
- π Check existing issues before creating duplicates
This project is licensed under the MIT License - see the LICENSE file for details.
- Creativity-Freaks Team - Core development team
We appreciate all contributors! Your name will appear here once your PR is merged.
See CONTRIBUTORS.md for a complete list.
- Supabase - Backend infrastructure
- shadcn/ui - Beautiful UI components
- Tailwind CSS - Styling framework
- React Community - Excellent tools and libraries
- All Contributors - Your time and effort
- π§ Email: info.proshnobank@gmail.com
- π¬ GitHub Discussions: Start a discussion
- π¦ Facebook: @ProshnoBank
- π Documentation: Full Docs
- Mobile app (React Native)
- AI-powered question generation
- Advanced analytics dashboard
- Live proctoring capabilities
- Integration with video conferencing
- Multi-language support
- Offline exam mode
- β GitHub Stars: Coming soon
- π₯ Contributors: Open to all
- π Monthly Users: Growing community
- π Active Exams: Hundreds per month
- 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
Made with β€οΈ by the Creativity-Freaks Team