# Cloud IDE Model Schema

A package for MongoDB schema management for the Cloud IDE LMS (Learning Management System).

## Overview

The `cloud-ide-model-schema` package provides Mongoose schema definitions for the Cloud IDE LMS system. It includes schema models for authentication, core functionality, email management, and more.

## Installation

```bash
npm install cloud-ide-model-schema
```

## Usage

```javascript
const { CUser, CCoreSytm, CEmailTemplete } = require('cloud-ide-model-schema');

// Use the models to interact with MongoDB
const user = await CUser.findOne({ user_username: 'username' });
```

## Project Structure

The project is organized into the following main directories:

### Source Code (`/src/`)

- **Schema Components** (`/src/schema/`)
  - **Authentication Schemas** (`/src/schema/auth/`)
    - User management
    - Login sessions
    - Mobile PIN authentication
  - **Core Schemas** (`/src/schema/core/`)
    - System pages and themes
    - Menu management
    - Entity management
    - General master data
    - File management
  - **Email Schemas** (`/src/schema/email/`)
    - Email lists
    - Templates
    - Logging
    - Vendor management

- **Configuration** (`/src/config/`)
  - Database connection utilities
  - Environment configuration

### Compiled Output (`/lib/`)

- **Schema Files** (`/lib/schema/`)
  - Compiled JavaScript files of all schema definitions
  - TypeScript declaration files (`.d.ts`)

- **Common Types** (`/lib/common-types/`)
  - Type definitions for API responses
  - JWT payload interfaces
  - General utility types

- **Configuration** (`/lib/config/`)
  - Compiled database utilities

- **Model Interfaces** (`/lib/model/`)
  - Type definitions for authentication
  - Core system model types
  - Email service interfaces

## Dependencies

- `cloud-ide-lms-model` - Data model type definitions
- `mongoose` - MongoDB ORM
- `dotenv` - Environment variable management

## Development

### Scripts

- `npm run build` - Build TypeScript code
- `npm run prepare` - Run build automatically before publishing

### Contributing

1. Clone the repository
2. Install dependencies: `npm install`
3. Make your changes
4. Build the project: `npm run build`
5. Test your changes
6. Submit a pull request

## Documentation Structure

This project uses README.md files throughout the codebase to provide comprehensive documentation. Each directory has its own README that explains its purpose and contents.

### Navigation Guide

#### Source Code Documentation

- [Source Directory](./src/README.md): Overview of the TypeScript source code
  - [Configuration](./src/config/README.md): Database connection and configuration utilities
  - [Schema](./src/schema/README.md): Schema structure overview
    - [Authentication Schemas](./src/schema/auth/README.md): User management schemas
    - [Core System Schemas](./src/schema/core/README.md): Core functionality schemas
    - [Email Service Schemas](./src/schema/email/README.md): Email management schemas

#### Compiled Output Documentation

- [Compiled Output Directory](./lib/README.md): Overview of the compiled JavaScript files
  - [Common Types](./lib/common-types/README.md): Shared type definitions
  - [Model Interfaces](./lib/model/README.md): Domain model interfaces
  - [Schema](./lib/schema/README.md): Compiled schema models
  - [Configuration](./lib/config/README.md): Compiled configuration utilities
  - [Utilities](./lib/utilities/README.md): Helper functions and utilities
  - [Types](./lib/@types/README.md): Internal type definitions

### README Structure

Each README file contains:
1. An overview of the directory or component
2. Navigation links to related documents
3. Details about files or subdirectories
4. Usage information where appropriate

## Table of Contents

- [Overview](#overview)
- [Installation](#installation)
- [Usage](#usage)
- [Project Structure](#project-structure)
- [Dependencies](#dependencies)
- [Development](#development)
- [Documentation Structure](#documentation-structure)
  - [Navigation Guide](#navigation-guide)
  - [README Structure](#readme-structure)
- [License](#license)
- [Author](#author)

## License

ISC

## Author

Ankush Bhure
