Skip to content

Creativity-Freaks/proshnobank

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

245 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“š ProshnoBank - Online Examination Platform

License React TypeScript Vite Supabase

🌟 Overview

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.

Key Features

✨ 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

πŸš€ Tech Stack

Frontend

  • 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

Backend

  • Supabase - Open-source Firebase alternative
  • PostgreSQL - Robust relational database
  • Row Level Security (RLS) - Database-level security

Tools & Services

  • ESLint - Code quality
  • TypeScript Compiler - Type checking
  • Vitest - Unit testing framework
  • Vercel - Deployment platform

πŸ“‹ Prerequisites

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

βš™οΈ Installation & Setup

1. Clone the Repository

git clone https://github.com/Creativity-Freaks/proshnobank.git
cd proshnobank

2. Install Dependencies

npm install

3. Environment Configuration

# 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_KEY

4. Start Development Server

npm run dev

The application will be available at http://localhost:5173

πŸ“š Available Scripts

# 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 test

πŸ—οΈ Project Structure

proshnobank/
β”œβ”€β”€ 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

πŸ” Authentication & Authorization

User Roles

  • Admin - Full system access and management
  • Teacher - Can create exams and manage questions
  • Student - Can take exams and view results

Security Features

  • JWT-based authentication via Supabase Auth
  • Row Level Security (RLS) on database tables
  • Role-based access control (RBAC)
  • Secure password hashing
  • Protected API endpoints

πŸ—„οΈ Database Schema

Key tables in the PostgreSQL database:

  • users - User accounts and profile information
  • exam_batches - Exam collections and metadata
  • questions - Question bank with multiple types
  • exam_submissions - Student exam responses
  • student_answers - Individual answer tracking
  • categories - Question categorization
  • live_events - Real-time exam events

🌐 Deployment

Deploy to Vercel

# Push to GitHub
git push origin main

# Vercel will auto-detect and deploy
# Configure environment variables in Vercel dashboard

Deploy to Other Platforms

The project can be deployed to:

  • Netlify
  • GitHub Pages
  • Self-hosted servers
  • Docker containers

🀝 Contributing

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

πŸ“ Code of Conduct

We are committed to providing a welcoming and inclusive environment. Please review our CODE_OF_CONDUCT.md for our community standards.

πŸ› Bug Reports & Feature Requests

Found a bug? Have a feature idea?

  • πŸ› Report bugs on GitHub Issues
  • πŸ’‘ Request features with detailed descriptions
  • πŸ”„ Check existing issues before creating duplicates

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ‘₯ Team & Contributors

Project Maintainers

  • Creativity-Freaks Team - Core development team

Contributors

We appreciate all contributors! Your name will appear here once your PR is merged.

See CONTRIBUTORS.md for a complete list.

πŸ™ Acknowledgments

  • Supabase - Backend infrastructure
  • shadcn/ui - Beautiful UI components
  • Tailwind CSS - Styling framework
  • React Community - Excellent tools and libraries
  • All Contributors - Your time and effort

πŸ“ž Support & Contact

πŸ—ΊοΈ Roadmap

Upcoming Features

  • Mobile app (React Native)
  • AI-powered question generation
  • Advanced analytics dashboard
  • Live proctoring capabilities
  • Integration with video conferencing
  • Multi-language support
  • Offline exam mode

πŸ“Š Statistics

  • ⭐ GitHub Stars: Coming soon
  • πŸ‘₯ Contributors: Open to all
  • πŸ“ˆ Monthly Users: Growing community
  • πŸŽ“ Active Exams: Hundreds per month

πŸŽ‰ Getting Started as a Contributor

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Made with ❀️ by the Creativity-Freaks Team

⬆ Back to Top

About

**ProshnoBank** is a cutting-edge, full-stack online examination platform built with modern web technologies. It provides a comprehensive solution for educational institutions, enabling seamless exam management, question banking, and performance analytics.

Topics

Resources

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages