Skip to content

BoraPolat/Archive-Management-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

3 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ›οΈ GAU Archive Management System

GAU Archive System Login

A comprehensive .NET MAUI application for managing academic archives and document tracking

.NET MAUI SQLite Platform


πŸ“‹ Table of Contents


🎯 Overview

The GAU Archive Management System is a cross-platform desktop and mobile application designed for Girne American University (GAU) to efficiently manage academic document archives. The system provides a complete solution for storing, tracking, borrowing, and retrieving educational documents such as midterms, finals, projects, and other academic materials.

Key Objectives

  • Centralized Archive Management: Store and organize all academic documents in a structured database
  • Location Tracking: Utilize a shelf-based location system for physical document placement
  • Borrow & Return System: Track document lending with borrower information and timestamps
  • Multi-User Support: User authentication and role management
  • Cross-Platform: Works seamlessly on Android, iOS, and Windows platforms

✨ Features

πŸ” Authentication & User Management

  • Secure login system with username/password authentication
  • Default credentials: GAU / GAU
  • User profile management (change username/password)

Login Screen

πŸ“ Document Archive Management

Add Documents to Archive

  • Support for multiple document types (Midterms, Finals, Quiz1, Quiz2, Graduation Projects, etc.)
  • Comprehensive metadata fields:
    • File Type
    • Course ID
    • Teacher Name
    • Year & Semester
    • Physical Location
    • Archive Date

Add Document Form Document Type Selection

Database Browser

  • Search and filter documents by multiple criteria
  • View all archived records
  • Quick statistics: Total databases, Selected items, Borrowed files
  • Bulk operations (Select All, Delete)

Database Management

πŸ” Smart Search System

  • Advanced search functionality with multiple filters:
    • File Type
    • Course ID
    • Teacher Name
    • Year
    • Semester
    • Location
    • Archive Date

Search Interface

  • Detailed search results with complete document information
  • One-click borrowing from search results

Search Results

πŸ“š Document Borrowing System

Borrow Documents

  • Record borrower information
  • Automatic timestamp tracking
  • Status management (Available β†’ Active)

Borrow Confirmation Document Details

Borrowed Files Dashboard

  • View all currently borrowed documents
  • Track borrowing duration
  • Quick return functionality
  • Real-time statistics (Total Borrowed, Currently Active)

Borrowed Files Dashboard

Borrowing History

  • Complete borrowing history with status tracking
  • Filter by status (All Records, Active, Returned)
  • Document details: Borrower, Course, Borrowed Date, Duration

Borrowing History Empty State

πŸ—ΊοΈ Location Management

Archive Guide

  • Visual shelf location system
  • Standardized coding: [Stand][Side]-[Shelf][Section]
    • Stand: Large number on top frame (e.g., 1)
    • Side: L (Left) or R (Right)
    • Shelf: Count from bottom (Floor = 1)
    • Section: A, B, C, D from left to right
  • Example: 1R-2C = Stand 1, Right side, Floor 2, Section C

Location Guide

Populate Locations Tool

  • Automatic shelf code generation
  • Batch creation of location codes
  • Configurable parameters:
    • Row Count (e.g., 15)
    • Sides (L, R - comma separated)
    • Shelf Height (e.g., 5)
    • Sections (A, B, C, D - comma separated)

Populate Locations

βš™οΈ Settings & Configuration

System Settings

  • Database path configuration
  • User account management:
    • Change Username
    • Change Password
  • Database management tools
  • Location population
  • Guide access
  • Reset to default settings
  • Logout functionality

Settings Page

Document Type Management

  • Configure custom document types
  • Add new document types with descriptions
  • Manage required fields for each type
  • Field customization

Empty Document Type Add Document Success


πŸ› οΈ Technology Stack

Frontend

  • .NET MAUI 9.0: Cross-platform UI framework
  • XAML: Declarative UI markup
  • C#: Primary programming language

Backend & Database

  • SQLite: Local database engine
  • sqlite-net-pcl 1.9.172: SQLite ORM for .NET
  • SQLitePCLRaw.bundle_green 2.1.11: SQLite PCL raw bindings

Development Tools

  • Visual Studio 2022: Primary IDE
  • .NET 9.0 SDK: Latest .NET framework
  • Target Platforms:
    • Android
    • iOS
    • Windows 10.0.19041.0+

πŸ“‚ Project Structure

SoftwareDesign/
β”œβ”€β”€ πŸ“„ App.xaml                          # Application definition
β”œβ”€β”€ πŸ“„ App.xaml.cs                       # Application logic
β”œβ”€β”€ πŸ“„ AppShell.xaml                     # Shell navigation
β”œβ”€β”€ πŸ“„ AppShell.xaml.cs                  # Shell logic
β”‚
β”œβ”€β”€ πŸ” Authentication
β”‚   β”œβ”€β”€ LoginPage.xaml                   # Login interface
β”‚   └── LoginPage.xaml.cs                # Login logic
β”‚
β”œβ”€β”€ πŸ“ Archive Management
β”‚   β”œβ”€β”€ AddToArchivePopup.xaml           # Add document form
β”‚   β”œβ”€β”€ AddToArchivePopup.xaml.cs        # Add document logic
β”‚   β”œβ”€β”€ ManageDatabasePage.xaml          # Database browser
β”‚   β”œβ”€β”€ ManageDatabasePage.xaml.cs       # Database operations
β”‚   └── MainPage.xaml                    # Main search interface
β”‚
β”œβ”€β”€ πŸ“š Borrowing System
β”‚   β”œβ”€β”€ BorrowedFilesPage.xaml           # Borrowed files dashboard
β”‚   β”œβ”€β”€ BorrowedFilesPage.xaml.cs        # Borrowing management
β”‚   β”œβ”€β”€ BorrowingHistoryPage.xaml        # History view
β”‚   └── BorrowingHistoryPage.xaml.cs     # History logic
β”‚
β”œβ”€β”€ πŸ”§ Configuration
β”‚   β”œβ”€β”€ SettingsPage.xaml                # Settings interface
β”‚   β”œβ”€β”€ SettingsPage.xaml.cs             # Settings logic
β”‚   β”œβ”€β”€ ManageDocumentTypesPage.xaml     # Document type config
β”‚   β”œβ”€β”€ ManageDocumentTypesPage.xaml.cs  # Type management
β”‚   β”œβ”€β”€ ManageFieldsPage.xaml            # Field configuration
β”‚   └── ManageFieldsPage.xaml.cs         # Field management
β”‚
β”œβ”€β”€ πŸ—ΊοΈ Location System
β”‚   β”œβ”€β”€ PopulateLocationsPage.xaml       # Location generator
β”‚   β”œβ”€β”€ PopulateLocationsPage.xaml.cs    # Location logic
β”‚   β”œβ”€β”€ guide.xaml                       # Location guide
β”‚   └── guide.xaml.cs                    # Guide logic
β”‚
β”œβ”€β”€ πŸ” Search & Utilities
β”‚   β”œβ”€β”€ SearchResultsPopup.xaml          # Search results popup
β”‚   β”œβ”€β”€ SearchResultsPopup.xaml.cs       # Results logic
β”‚   β”œβ”€β”€ AddDocumentTypePopup.xaml        # Add type popup
β”‚   β”œβ”€β”€ AddDocumentTypePopup.xaml.cs     # Add type logic
β”‚   β”œβ”€β”€ EditPickerOptionsPopup.xaml      # Edit picker options
β”‚   β”œβ”€β”€ EditPickerOptionsPopup.xaml.cs   # Picker logic
β”‚   β”œβ”€β”€ MultiSelectFieldsPopup.xaml      # Multi-select fields
β”‚   └── MultiSelectFieldsPopup.xaml.cs   # Multi-select logic
β”‚
β”œβ”€β”€ πŸ› οΈ Utilities
β”‚   β”œβ”€β”€ Converters.cs                    # Value converters
β”‚   └── MauiProgram.cs                   # App startup
β”‚
β”œβ”€β”€ πŸ“¦ Resources
β”‚   β”œβ”€β”€ AppIcon/                         # Application icons
β”‚   β”œβ”€β”€ Splash/                          # Splash screens
β”‚   β”œβ”€β”€ Images/                          # Image resources
β”‚   β”‚   └── gau_logo.png                 # GAU logo
β”‚   β”œβ”€β”€ Fonts/                           # Font resources
β”‚   └── Raw/                             # Raw assets
β”‚
└── πŸ“„ SoftwareDesign.csproj             # Project configuration

πŸš€ Installation

Prerequisites

  1. Visual Studio 2022 (version 17.12 or later)

    • Workload: .NET Multi-platform App UI development
  2. .NET 9.0 SDK

    dotnet --version  # Should show 9.0.x or later
  3. Platform-specific requirements:

    • Windows: Windows 10 version 1809 or later
    • Android: Android SDK 21 or later
    • iOS: macOS with Xcode 15 or later

Steps

  1. Clone the repository

    git clone https://github.com/yourusername/gau-archive-management.git
    cd gau-archive-management
  2. Restore NuGet packages

    dotnet restore
  3. Build the project

    dotnet build
  4. Run the application

    For Windows:

    dotnet run --framework net9.0-windows10.0.19041.0

    For Android:

    dotnet run --framework net9.0-android

    For iOS:

    dotnet run --framework net9.0-ios

First Run Setup

  1. Launch the application
  2. Login with default credentials:
    • Username: GAU
    • Password: GAU
  3. Navigate to Settings to configure:
    • Database location
    • User credentials (recommended)
    • Document types
  4. Use "Populate Locations" to generate shelf codes
  5. Start adding documents to the archive!

πŸ’‘ Usage

Adding a New Document

  1. From the main page, click "Add Files to Archive"
  2. Select the File Type from the dropdown
  3. Fill in required information:
    • Course ID (e.g., CS101)
    • Teacher Name (e.g., Prof. Williams)
    • Year (e.g., 2024)
    • Semester (Spring/Fall/Summer)
    • Location (e.g., 1R-2C)
    • Archive Date
  4. Click "Save to Archive"
  5. Confirmation message appears

Searching for Documents

  1. On the main page, enter search criteria:
    • File Type (optional)
    • Course ID
    • Teacher Name
    • Year
    • Semester
    • Location
    • Archive Date
  2. Click "Search..."
  3. View results with complete document details
  4. Click on a result to see more details or borrow

Borrowing a Document

  1. Search for and locate the document
  2. Click on the document to open details
  3. Click "Borrow!" button
  4. Enter borrower information (if prompted)
  5. Confirmation message appears
  6. Document status changes from "Available" to "Active"

Returning a Document

  1. Navigate to "Borrowed Files"
  2. Find the document in the active list
  3. Click the "Return" button
  4. Document returns to "Available" status
  5. Record moves to borrowing history

Generating Location Codes

  1. Go to Settings β†’ "Populate Locations"
  2. Configure parameters:
    • Row Count: Number of stands (e.g., 15)
    • Sides: L,R (both sides)
    • Shelf Height: Number of shelves (e.g., 5)
    • Sections: A,B,C,D (sections per shelf)
  3. Click "GENERATE & SAVE"
  4. System generates all location codes (e.g., 1R-2C, 1L-3A, etc.)

πŸ—„οΈ Database Schema

The application uses SQLite with the following main tables:

Documents Table

CREATE TABLE Documents (
    Id INTEGER PRIMARY KEY AUTOINCREMENT,
    Type TEXT NOT NULL,
    CourseId TEXT NOT NULL,
    TeacherName TEXT NOT NULL,
    Year INTEGER NOT NULL,
    Semester TEXT NOT NULL,
    Location TEXT NOT NULL,
    ArchiveDate TEXT NOT NULL,
    Status TEXT DEFAULT 'Available',
    CreatedAt DATETIME DEFAULT CURRENT_TIMESTAMP
);

BorrowingRecords Table

CREATE TABLE BorrowingRecords (
    Id INTEGER PRIMARY KEY AUTOINCREMENT,
    DocumentId INTEGER NOT NULL,
    BorrowerName TEXT NOT NULL,
    BorrowDate TEXT NOT NULL,
    ReturnDate TEXT,
    Duration TEXT,
    Status TEXT DEFAULT 'Active',
    FOREIGN KEY (DocumentId) REFERENCES Documents(Id)
);

DocumentTypes Table

CREATE TABLE DocumentTypes (
    Id INTEGER PRIMARY KEY AUTOINCREMENT,
    TypeName TEXT UNIQUE NOT NULL,
    Description TEXT,
    RequiredFields TEXT
);

Locations Table

CREATE TABLE Locations (
    Id INTEGER PRIMARY KEY AUTOINCREMENT,
    LocationCode TEXT UNIQUE NOT NULL,
    Stand INTEGER,
    Side TEXT,
    Shelf INTEGER,
    Section TEXT
);

Users Table

CREATE TABLE Users (
    Id INTEGER PRIMARY KEY AUTOINCREMENT,
    Username TEXT UNIQUE NOT NULL,
    Password TEXT NOT NULL,
    Role TEXT DEFAULT 'User',
    CreatedAt DATETIME DEFAULT CURRENT_TIMESTAMP
);

🀝 Contributing

Contributions are welcome! Please follow these steps:

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

Coding Standards

  • Follow C# naming conventions
  • Use XAML for UI design
  • Write meaningful commit messages
  • Add comments for complex logic
  • Test on all target platforms before submitting

πŸ“ License

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

Copyright (c) 2026 Bora Polat Email: borapolade@outlook.com

You are free to use, modify, develop, and distribute this software, provided that the original author name and license notice are included.


πŸ‘₯ Authors

  • Bora POLAT, Ibrahim DEGER, Emir Mert TANRIVERDI - BoraPolat

πŸ™ Acknowledgments

  • Girne American University (GAU) for the project inspiration
  • .NET MAUI Team for the excellent cross-platform framework
  • SQLite for the robust embedded database
  • All contributors and testers

πŸ“§ Contact

For questions, suggestions, or support:


Β© 2026 GAU Archive Management System

About

A cross-platform archive management system for Girne American University, designed to store, track, borrow, and retrieve academic documents efficiently.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages