Skip to content

marypas74/Insightlearn

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

78 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

InsightLearn - Learning Management System

A modern, enterprise-grade Learning Management System built with .NET 8, Blazor Server, and SQL Server.

Features

  • Course Management: Create, edit, and organize courses with sections and lessons
  • User Authentication: JWT-based API authentication with Google OAuth integration
  • Payment Processing: Stripe integration for course purchases
  • Enterprise Monitoring: Comprehensive logging and performance monitoring
  • Real-time Features: SignalR integration for live updates
  • Responsive Design: Modern UI with Blazor Server components

Tech Stack

  • .NET 8.0 - Core framework
  • Blazor Server - Interactive web UI
  • ASP.NET Core Web API - RESTful API
  • Entity Framework Core 8 - Data access layer
  • SQL Server - Primary database
  • Redis - Caching and session storage
  • Docker - Containerization
  • nginx - Reverse proxy and load balancer

Quick Start

Prerequisites

  • Docker and Docker Compose
  • .NET 8.0 SDK (for development)
  • SQL Server (or use Docker container)

Running with Docker

  1. Clone the repository
  2. Copy environment configuration:
    cp .env.example .env
  3. Start all services:
    docker-compose up -d
  4. Access the application:

Development Setup

  1. Build the solution:

    dotnet build
  2. Set up the database:

    cd src/InsightLearn.Api
    dotnet ef database update --project ../InsightLearn.Infrastructure
  3. Run the API:

    cd src/InsightLearn.Api
    dotnet run
  4. Run the Web application:

    cd src/InsightLearn.Web
    dotnet run

Project Structure

├── src/
│   ├── InsightLearn.Core/           # Domain entities and interfaces
│   ├── InsightLearn.Application/    # Business logic and services
│   ├── InsightLearn.Infrastructure/ # Data access and external services
│   ├── InsightLearn.Api/           # REST API controllers
│   └── InsightLearn.Web/           # Blazor Server application
├── docker-compose.yml              # Docker services configuration
├── nginx.conf                      # nginx configuration
└── README.md                       # This file

Configuration

Environment Variables

Key configuration options in .env:

  • DB_CONNECTION_STRING - SQL Server connection string
  • REDIS_CONNECTION_STRING - Redis connection string
  • JWT_SECRET_KEY - JWT signing key
  • GOOGLE_CLIENT_ID - Google OAuth client ID
  • GOOGLE_CLIENT_SECRET - Google OAuth client secret

Database Migrations

Create new migration:

cd src/InsightLearn.Infrastructure
dotnet ef migrations add MigrationName --startup-project ../InsightLearn.Api

Apply migrations:

cd src/InsightLearn.Api
dotnet ef database update --project ../InsightLearn.Infrastructure

Testing

Run all tests:

dotnet test

Run with coverage:

dotnet test --collect:"XPlat Code Coverage"

Security

  • JWT-based authentication for API endpoints
  • Role-based authorization (Administrator, Instructor, Student, Moderator)
  • Google OAuth integration for external authentication
  • HTTPS enforcement in production
  • Comprehensive input validation and SQL injection prevention

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.

Support

For support and questions, please open an issue in the GitHub repository.

About

Insightlearn

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •