Skip to content

About

Full-stack educational platform built using ASP.NET Web Forms and C# with quiz automation, module management, authentication, and email notifications.

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

12 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LearnSphere

.NET Framework C# ASP.NET WebForms Entity Framework SQL Server Microsoft Identity Google OAuth HTML5 CSS3 JavaScript Chart.js Font Awesome SendGrid TinyMCE Newtonsoft.Json Visual Studio NuGet License: MIT

Screenshot 2026-04-11 183337 Screenshot 2026-04-11 183542 Screenshot 2026-04-11 183557 Screenshot 2026-04-11 183652

Screenshot 2026-04-11 184547 Screenshot 2026-04-11 184725 Screenshot 2026-04-11 183640 Screenshot 2026-04-11 183733

Screenshot 2026-04-11 183746 Screenshot 2026-04-11 184359 Screenshot 2026-04-11 184454 Screenshot 2026-04-11 184416

LearnSphere is a comprehensive educational platform built with ASP.NET Web Forms that enables educational institutions to manage modules, quizzes, and student feedback. The platform supports multiple user roles including Students, Lecturers, and Administrators.

Table of Contents


Features

Authentication & Authorization

  • Email/password registration and login
  • Google OAuth integration for single sign-on
  • Role-based access control (Student, Lecturer, Admin)
  • Profile management with profile picture support

Module Management

  • Create, edit, and delete modules
  • Module enrollment for students
  • Module content management for lecturers
  • Announcements system
  • File upload and content delivery

Quiz System

  • Multiple question types:
    • Multiple Choice
    • True/False
    • Fill in the Blank
    • Matching Pairs
    • Image-based questions
  • Quiz grading and scoring
  • Quiz history and results
  • Time-limited assessments
  • Automatic grading

Feedback System

  • Student feedback submission
  • Lecturer feedback response
  • Feedback management for administrators

Notifications

  • Email notifications via SendGrid
  • In-app notification system
  • Real-time notification updates

User Management

  • Admin dashboard
  • User search functionality
  • Account management

Tech Stack

Component Technology
Framework ASP.NET Web Forms 4.7.2
Language C#
ORM Entity Framework 6
Database SQL Server (LocalDB)
Authentication ASP.NET Identity + Google OAuth
Email Service SendGrid API
Rich Text Editor TinyMCE Cloud
IDE Visual Studio 2022

Project Structure

LearnSphere/
├── AdminDashboard.aspx       
├── Callback.aspx            
├── Default.aspx         
├── FeedbackManagement.aspx 
├── Login.aspx             
├── ModuleManagement.aspx  
├── Profile.aspx         
├── Register.aspx        
├── Search.aspx         
├── UserManagement.aspx  

# Student Portal
Student/
├── Announcements.aspx
├── AttemptQuiz.aspx
├── Dashboard.aspx
├── Feedback.aspx
├── MyModules.aspx
├── QuizHistory.aspx
├── QuizzesList.aspx
├── QuizResults.aspx
├── ViewModule.aspx
├── Helpers/
│   ├── QuestionRenderer.cs
│   └── QuizHelper.cs
├── Services/
│   └── QuizService.cs
└── (Various .ashx handlers)

# Lecturer Portal
Lecturer/
├── Announcements.aspx
├── Dashboard.aspx
├── Enrollments.aspx
├── ModuleContent.aspx
├── Modules.aspx
├── Quizzes.aspx
├── QuizGrading.aspx
├── StudentFeedback.aspx

# Management Portal
Management/
└── Site.Master

# Core Components
App_Start/
└── IdentitySeed.cs

Content/
├── Admin.css
├── AuthFuturistic.css
├── Dashboard.css
├── LecturerSite.css
├── ProfileStyle.css
├── StudentSite.css
└── UserManagement.css

Helpers/
└── EmailHelper.cs

Migrations/
├── (Database migration files)
└── Configuration.cs

Models/
├── GradingStatistics.cs
├── IdentityModels.cs
└── MatchingPair.cs

Properties/
└── AssemblyInfo.cs

Uploads/
├── Content/     # Module content files
├── Questions/   # Quiz question images
└── Thumbnails/  # Image thumbnails

Prerequisites

Software Requirements

  • Visual Studio 2026 (with .NET Framework 4.7.2)
  • .NET Framework 4.7.2 or higher
  • SQL Server Express 2019 or SQL Server LocalDB
  • IIS Express (included with Visual Studio)

API Keys Required

  • Google OAuth credentials (Client ID + Secret)
  • SendGrid API key for email notifications
  • Optional: TinyMCE API key for rich text editing

Installation

1. Clone the Repository

git clone https://github.com/Maneet7805/Web-App.git
cd Web-App

2. Configure Environment Variables

Copy the example environment file:

cp .env.example .env

Edit .env file with your credentials:

GoogleClientId=your_google_client_id
GoogleClientSecret=your_google_client_secret
SendGridApiKey=your_sendgrid_api_key
FromEmail=noreply@learnsphere.com
FromName=LearnSphere
EmailEnabled=true
BaseUrl=http://localhost:44300

3. Open in Visual Studio

  1. Open the solution file:

    • LearnSphere.slnx (recommended)
    • Or LearnSphere.csproj
  2. Restore NuGet packages:

    • Right-click solution → Restore NuGet Packages
    • Or run: Update-Package -reinstall

4. Build and Run

  1. Press F5 or click Start
  2. The application will open in your browser at http://localhost:44300

5. Initialize Database

The database will be created automatically on first run. Alternatively, run migrations:

Update-Database

Configuration

Web.config Settings

The application reads configuration from Web.config and environment variables:

<appSettings>
    <!-- Google OAuth -->
    <add key="GoogleClientId" value="" />
    <add key="GoogleClientSecret" value="" />
    
    <!-- SendGrid Email -->
    <add key="SendGridApiKey" value="" />
    <add key="FromEmail" value="" />
    <add key="FromName" value="" />
    <add key="EmailEnabled" value="" />
    <add key="BaseUrl" value="" />
    
    <!-- TinyMCE -->
    <add key="TinyCloudApiKey" value="" />
</appSettings>

Connection String

Default connection uses LocalDB:

<connectionStrings>
    <add name="DefaultConnection" 
         connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\LearnSphere.mdf;Integrated Security=True" 
         providerName="System.Data.SqlClient" />
</connectionStrings>

Database Migrations

The project includes the following migrations:

Migration Description
InitialCreate Core identity tables
AddProfilePictureUrl Profile picture support
InitialLearnSphereTables Module, Quiz, Question tables
AddCompleteModuleFeatures Module content, enrollments
EnhanceModuleContent Rich content support
AddAssessmentFeatures Quiz assessments
AddQuestionImageUrl Image questions
AddUserNotifications In-app notifications

User Roles

Student

  • View and enroll in modules
  • Take quizzes and view results
  • Submit feedback
  • Update profile

Lecturer

  • Create and manage modules
  • Upload module content
  • Create and grade quizzes
  • Manage enrollments
  • View student feedback
  • Post announcements

Administrator

  • Manage all users
  • View site-wide statistics
  • Manage feedback
  • System configuration

API Integrations

Google OAuth

Enable Google sign-in:

  1. Go to Google Cloud Console
  2. Create a new project
  3. Enable Google+ API (or Identity platform)
  4. Create OAuth credentials
  5. Set authorized redirect URIs:
    • http://localhost:44300/Callback.aspx
    • https://yourdomain.com/Callback.aspx
  6. Copy Client ID and Secret to .env

SendGrid

For email notifications:

  1. Sign up at SendGrid
  2. Create an API key
  3. Verify sender email
  4. Copy API key to .env

TinyMCE (Optional)

For rich text editing in modules:

  1. Sign up at Tiny.cloud
  2. Get API key
  3. Add to .env

Environment Variables

Variable Required Description
GoogleClientId Yes Google OAuth Client ID
GoogleClientSecret Yes Google OAuth Client Secret
SendGridApiKey No SendGrid API key for emails
FromEmail No Email sender address
FromName No Email sender name
EmailEnabled No Enable email (true/false)
BaseUrl Yes Application base URL
TinyCloudApiKey No TinyMCE API key

Security

Secrets Management

  • Never commit secrets to GitHub
  • Use .env file for credentials (already gitignored)
  • Use environment variables in production
  • Rotate API keys regularly

Best Practices Implemented

  • Password hashing via ASP.NET Identity
  • Role-based authorization
  • SQL injection prevention via Entity Framework
  • XSS prevention via output encoding
  • CSRF protection via form tokens

Contributing

  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

License

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


Acknowledgments

  • ASP.NET Web Forms documentation
  • Entity Framework documentation
  • SendGrid API documentation
  • Google OAuth documentation

Support

For issues or questions:

  • Open an issue on GitHub
  • Check existing documentation
  • Review the code inline comments

Built with LearnSphere © 2024

About

Full-stack educational platform built using ASP.NET Web Forms and C# with quiz automation, module management, authentication, and email notifications.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages