Skip to content

itpartnersillinois/ConvocationApp

Repository files navigation

ConvocationApp

A .NET 10 Razor Pages application for managing ICard information and user registration. Originally developed for the Convocation process, this application can be adapted for various registration and check-in scenarios.

Table of Contents

Overview

ConvocationApp is a user intake system that processes ICard information for registration purposes. The application integrates with the Data Warehouse (DW) database to retrieve ICard photos and stores attendee information in a local database.

Current Capabilities:

  • User registration and intake processing
  • ICard photo retrieval and display
  • Attendee information management

Limitations:

  • Currently handles intake only
  • Data retrieval requires direct database access

Features

  • ICard Integration: Retrieves user photos from the DW database
  • Attendee Management: Tracks registration, pickup status, and attendee details
  • Entity Framework Core: Automatic database creation and migrations
  • Razor Pages Architecture: Clean separation of concerns with page-based routing
  • CI/CD Ready: Configured for continuous integration deployment

Technology Stack

  • .NET 10: Latest .NET framework
  • ASP.NET Core Razor Pages: Web application framework
  • Entity Framework Core: Object-relational mapping and database management
  • SQL Server: Primary database for attendee data
  • Microsoft.Data.SqlClient: SQL Server connectivity

Prerequisites

Before you begin, ensure you have the following installed:

Getting Started

Local Development Setup

  1. Clone the Repository

    git clone <repository-url>
    cd ConvocationApp
  2. Restore NuGet Packages

    dotnet restore
  3. Configure Application Settings

    Create or update the local.settings.json file in the project root with your connection strings (see Configuration section).

  4. Build the Application

    dotnet build
  5. Run the Application

    dotnet run

    The application will be available at https://localhost:5001 (or the port specified in your launch settings).

Configuration

Create a local.settings.json file in the project root with the following structure:

{
  "ConnectionStrings": {
    "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=ConvocationAppDb;Trusted_Connection=True;MultipleActiveResultSets=true"
  }
}

Configuration Notes:

  • DefaultConnection: Connection string for the local attendee database

Database Setup

The application uses Entity Framework Core with automatic database creation:

  1. Initial Database Creation

    The database will be created automatically on first run if it doesn't exist.

  2. Apply Migrations (if applicable)

    dotnet ef database update
  3. Create a New Migration (when making schema changes)

    dotnet ef migrations add <MigrationName>

Deployment

Production Deployment

Status: Production environment setup in progress.

Requirements:

  • SQL Server database instance
  • Access to the Data Warehouse database
  • Appropriate connection strings configured in application settings

CI/CD Pipeline

The application is configured for continuous integration and deployment:

  • Automated builds on code commits
  • Deployment triggered via CI pipeline
  • Environment-specific configuration management

Deployment Steps:

  1. Commit and push changes to the repository
  2. CI pipeline automatically builds and tests the application
  3. Deployment to target environment occurs upon successful build

Environment Configuration

Ensure the following are configured in your production environment:

  • Connection strings in application settings or Azure App Configuration
  • Appropriate database permissions
  • Network access to DW database
  • SSL certificates for HTTPS

Usage

Registering Attendees

  1. Navigate to the registration page
  2. Scan or enter the attendee's UIN (University Identification Number)
  3. The system retrieves the ICard photo from the DW database
  4. Verify attendee information and complete registration
  5. Attendee data is stored in the local database

Accessing Attendee Data

  • Via Application: Currently limited to intake functionality
  • Direct Database Access: Query the database directly for reporting and data retrieval
    SELECT * FROM Attendees WHERE Uin = '<uin-value>'

Project Structure

ConvocationApp/
├── DataAccess/           # Data access layer and repository classes
│   ├── AttendeeContext.cs
│   ├── AttendeeImage.cs
│   └── ...
├── Pages/                # Razor Pages
│   ├── Index.cshtml
│   └── ...
├── Models/               # Domain models
│   ├── Attendee.cs
│   └── ...
├── wwwroot/             # Static files (CSS, JS, images)
├── appsettings.json     # Application configuration
├── Program.cs           # Application entry point
└── ConvocationApp.csproj

Contributing

Development Workflow

  1. Development Environment: Local machine development
  2. Branching Strategy: Create feature branches for new development
  3. Code Review: Submit pull requests for review before merging
  4. Testing: Ensure all changes are tested locally before committing

Best Practices

  • Follow C# coding conventions and .NET best practices
  • Write clean, maintainable code with appropriate comments
  • Update this README when adding new features or changing configuration
  • Test database migrations before committing
  • Keep dependencies up to date

Support

Error Logging

  • Error logging implementation: TBD
  • Check application logs for troubleshooting

External Tools

  • Entity Framework Core CLI: For database migrations
  • SQL Server Management Studio: For direct database access

Contact

For questions or issues, contact IT Partners.


Last Updated: December 2024
Project Status: Active Development

About

Convocation App to run Swag Bag and personalized signs

Topics

Resources

License

Stars

Watchers

Forks

Contributors