# Introduction
Source: https://docs.academykit.co/app-documentation/introduction
Welcome to the Academykit LEARNING MANAGEMENT SYSTEM (LMS) App Help Guide!
### About Academykit LMS
Academykit LMS is a comprehensive learning management solution designed specifically for your closed group. It provides a centralized platform for delivering, managing, and tracking training programs tailored to the unique needs and goals of your organization. Whether you are a corporate trainer seeking to streamline employee onboarding or an organization aiming to scale your training initiatives, Academykit LMS provides the tools and resources you need to succeed. With Academykit LMS, we aim to streamline learning processes, enhance knowledge retention, and foster continuous growth and development.
### Purpose of the App Help Guide
This guide serves as your go-to resource for understanding and maximizing the features and functionalities of the Academykit LMS application. Whether you're new to the app or seeking to deepen your understanding of its capabilities, this guide will provide you with step-by-step instructions, tips, and troubleshooting solutions to ensure a smooth and productive user experience.
### Who Should Use This Guide?
This guide is intended for users of the Academykit LMS application, including:
* Educators and trainers
* Students and learners
* Administrators and managers
* Anyone involved in the creation, delivery, or management of training programs within the Academykit LMS platform
### What You'll Find in This Guide
In this guide, you'll find detailed information on various aspects of the Academykit LMS application, including:
* Getting started with the app
* Navigating the user interface
* Accessing and interacting with learning materials
* Participating in live training sessions
* Managing your account and preferences
* Troubleshooting common issues
* Getting help and support
### How to Use This Guide
To get the most out of this guide, we recommend browsing through the sections and subsections relevant to your needs. Whether you're looking for general information on using the app or troubleshooting specific issues, you'll find clear and concise instructions to help you along the way. If you have any questions or need further assistance, don't hesitate to reach out to our support team for help.
Thank you for choosing Academykit LMS for your learning and training needs. We're excited to have you on board, and we're here to support you every step of the way!
# User Registration Guide
Source: https://docs.academykit.co/app-documentation/post-deployment/add-user
Learn how to register users in the system, either manually or by importing via a CSV file.
## Registering Users in the System
In the Users tab, you can manage all members and edit their details/information.
### Add Users
Add users to the application by inviting them via email. Users will be added upon acceptance through the registration process.
**Note:** User status and role can be modified at any time (active/inactive, admin/trainer/trainee). Users who have not logged into the application at least once will be in pending status.
**Steps to Add a New User:**
1. Log in to the system.
2. Navigate to the Users option in the sidebar.
3. Click on the "Add User" button.
4. Fill in mandatory fields such as First Name, Last Name, Email, User Role (Admin, Trainer, or Trainee), and Department (select from the predefined departments in the master setup).
5. Click the "Submit" button.
6. After clicking on Submit, the user will receive an email including login credentials for accessing the application.
### Import Users Using .CSV File
Import application members by creating a new CSV file and following the specified format.
**Steps to Import Users:**
1. Create a new CSV sheet with headers: FirstName, MiddleName, LastName, Email, MobileNumber, Role, Department, and Designation.
2. Log in to the system.
3. Navigate to the Users option in the sidebar.
4. Click on the "Add User" button.
5. Choose "Import Users" and select the CSV file.
6. Once imported, users will be added to the application and an email will be sent to their respective email addresses.
**Note:** You can download the sample CSV file.
## Master Setup
### Adding Department
1. **Login to the System:**
* Access the system using your admin credentials. Navigate to the login page using the provided URL.
2. **Access Admin Settings:**
* Once logged in, locate and access the admin settings section.
3. **Navigate to Departments:**
* Within the admin settings, locate the option for managing departments.
4. **Add New Department:**
* Look for an option to add a new department and click on it. This action should open a form or dialog box where you can input the details of the new department.
5. **Enter Department Details:**
* In the form provided, enter the necessary details for the new department. This typically includes the department name, description.
6. **Save Changes:**
* After entering the department details, save your changes. This action may be labeled as "Save," "Add Department," or similar.
7. **Optional: Edit or Delete Departments:**
Use these options as needed to manage your application's department structure.
By following these steps, you can add departments to the master setup of your application, enabling you to link them with users during the registration process or for organizational structuring purposes.
# Training Prerequisites
Source: https://docs.academykit.co/app-documentation/post-deployment/create
Unlock the full potential of the Academykit Learning Management System (LMS) with our comprehensive configuration guide. Discover how to effortlessly create groups, add labels, and manage content, empowering trainers and administrators to deliver personalized and impactful learning experiences.
### A. Group Creation
Creating groups within the Academykit LMS allows for targeted training delivery and streamlined management of participants. Here, you'll learn how to create groups, enabling trainers and administrators to organize participants efficiently and assign tailored training content.
To create groups within the Academykit LMS, follow these steps:
1. **Login to the Academykit LMS Dashboard**: Access the Academykit LMS dashboard using your admin credentials.
2. **Navigate to Group Management**: Locate the "Group Management" section in the dashboard menu.
3. **Click on "Create New Group"**: Within the Group Management section, find the option to create a new group and click on it.
4. **Enter Group Details**: Provide the necessary details for the new group, such as the group name.
5. **Save Changes**: After entering the group name, save your changes to create the group successfully.
**Note:** Users with the roles of admin or above can create groups.
### B. Label Addition
Adding labels to courses, modules, and other training elements provides a flexible and customizable way to categorize and organize content within the Academykit LMS platform. In this subsection, you'll discover how to add descriptive labels to training materials, facilitating easy searchability, filtering, and grouping of content based on specific themes, topics, or attributes.
To add labels to courses, modules, and other training elements within the Academykit LMS, follow these steps:
1. **Access Admin Settings**: Navigate to the settings and click on the admin settings.
2. **Locate Labeling Options**: Look for options "label" within the settings menu.
3. **Create New Label**: If no labels exist yet, create a new label by entering a descriptive name.
4. **Save Changes**: After entering the name of the label, save your changes to save the label successfully.
**Note:** Users with the roles of admin or above can add labels.
### C. Group Management
Managing groups effectively is essential for ensuring personalized training experiences and targeted communication with participants. Here, you'll explore group management functionalities within the Academykit LMS platform, including adding or removing members, assigning trainers, and sharing files with group members.
To manage groups within the Academykit LMS, follow these steps:
1. **Access Group Settings**: Navigate to the group management section in the admin dashboard.
2. **Select Desired Group**: Choose the group you want to manage from the list of existing groups.
3. **Perform Management Tasks**: Depending on your role (trainer or above), you can add or remove members, assign trainers, and share files within the group.
4. **Save Changes**: After making any modifications, ensure to save your changes to update the group settings successfully.
**Note:** Users with the roles of trainer or above can manage groups.
### D. Label Utilization
Utilizing labels strategically enhances the organization and accessibility of training content within the Academykit LMS platform. This subsection will guide you on leveraging labels to categorize, filter, and group training materials based on common themes, objectives, or audience preferences, enabling trainers and administrators to efficiently locate and assign relevant content to participants.
To utilize labels effectively within the Academykit LMS, consider the following:
* **Consistent Labeling**: Ensure consistency in labeling practices to maintain a structured and organized content repository.
* **Strategic Application**: Apply labels based on common themes, learning objectives, or audience demographics to facilitate easy content discovery and assignment.
* **Regular Review and Maintenance**: Periodically review and update labels to reflect changes in training content or organizational requirements, ensuring relevance and accuracy.
By implementing these configurations post-deployment, you'll create a structured and organized environment within the Academykit LMS platform, empowering trainers and administrators to streamline training creation processes and deliver targeted, impactful learning experiences to participants.
# Quick Start
Source: https://docs.academykit.co/app-documentation/quickstart
The Learning Management System (LMS) is a user-friendly platform designed to streamline training processes within your organization. Whether you're an administrator, trainer, or trainee, LMS provides tools and features tailored to your specific role, ensuring a seamless learning experience.
Here's a simplified overview of what each user can expect from the application:
1. **Administrators**:
* Administrators, or Super Admins, have overall control of the system.
* They can manage user roles, permissions, and settings, ensuring smooth operation of the platform.
* Administrators oversee the creation of groups, addition of members, and organization of training materials.
* They can generate and manage levels for trainings, ensuring content is appropriately tailored to users' skill levels.
2. **Trainers**:
* Trainers play a key role in delivering training content.
* They can create and manage sessions, assignments, and online tests within specific groups.
* Trainers guide trainees through the learning process, providing support and feedback as needed.
3. **Trainees**:
* Trainees, or students, are the end-users of the platform.
* They have access to training materials and resources provided within their assigned groups.
* Trainees can enroll in available training, complete assignments, and participate in online tests to enhance their skills and knowledge.
In essence, the Training Management System offers a structured approach to training delivery, allowing administrators to effectively manage content, trainers to facilitate learning, and trainees to engage with materials tailored to their needs.
# Certificate Setup Guide
Source: https://docs.academykit.co/app-documentation/training/certificate
Configure certificate generation and issuance in AcademyKit to recognize participants' completion of training programs.
### Certificate Generation Setup Guide
Ensure participants receive recognition for completing training programs by configuring certificate generation in AcademyKit. Follow these steps to set up the certificate generation process within the training section:
1. **Access Training Settings:**
* Log in to your AcademyKit account with administrative privileges.
* Navigate to the training section from the main menu.
2. **Select Training Program:**
* Choose the specific training program for which you want to set up certificate generation.
3. **Access Certificate Settings:**
* Within the training settings, locate the certificate option.
4. **Configure Certificate Fields:**
* Specify the data to be included in the certificate, such as:
* Participant's Name (Dynamic)
* Training Title
* Start Date
* End Date
* Trainer or Administrator's Name and Designation (Up to three allowed)
* Trainer or Administrator's Signature (Up to three signatures allowed)
5. **Upload Signature:**
* Upload the digital signature of the authorized person (e.g., trainer, administrator) who will sign the certificates. Ensure the signature file is in the appropriate format (e.g., PNG, JPEG) and meets any size or resolution requirements.
6. **Preview Certificate Generation:**
* Before issuing certificates to participants, preview the generated certificates to ensure accuracy and completeness.
7. **Certificate Issuance:**
* After verifying the preview, issue the certificates to individual participants.
8. **Download Option for Participants:**
* Enable participants to download their certificates in PDF or image format directly from their user profile. Include a download button or link next to each certificate for easy access.
9. **External Certificate Verification:**
* A verification process for external certificates to verify the authenticity of issued certificates. Utilize a verification system where certificates can be validated by administrators or super-administrators.
By following these steps, you can seamlessly integrate certificate generation into your training programs in AcademyKit, providing participants with tangible recognition of their accomplishments and motivating them to engage actively in the learning process.
# General
Source: https://docs.academykit.co/app-documentation/training/general-setup
Create engaging and impactful training programs in AcademyKit with these detailed steps.
Creating a new training in AcademyKit is a straightforward process. Follow these detailed steps to ensure a seamless training creation experience:
1. **Access Training Management:** Log in to your AcademyKit account and navigate to the training management section from the main menu.
2. **Initiate New Training:** Look for the "Create New Training" button and click on it to initiate the training creation process.
* **Note:** To access this feature, you must have the role of trainer or above.
3. **Enter Training Details:**
* **Title and Description:** Provide a descriptive title and a detailed description for your training program to convey its purpose and objectives clearly.
* **Date:** Specify the start date and end date of the training session to inform participants about the schedule.
* **Eligibility Criteria:** Define eligibility criteria for participants, such as prerequisites or required skills, to ensure that only suitable candidates can enroll in the training.
* **Thumbnail Upload:** Upload a visually appealing thumbnail image to represent the training and attract the attention of potential participants.
4. **Set Access Permissions:**
* **Group Specific Access:** Restrict access to dedicated groups by selecting specific user groups or creating new ones for targeted training delivery.
5. **Add Modules and Content:**
* **Module Structure:** Break down the training into sections based on the topic or learning objectives.
* **Content Elements:** Add various types of content elements such as videos, PDFs, exams, assignments, live sessions, or interactive activities to engage learners effectively.
6. **Configure Settings:**
* **Tracking Metrics:** Track the progress and performance of participants throughout the training program.
7. **Review and Edit:**
* **Content Review:** Ensure your training structure and content are coherent and effective.
* **User Experience:** Evaluate the user experience to identify any areas for improvement.
8. **Publish and Monitor:**
* **Publish Training:** If you're a trainer, clicking on "Publish" will send the training for review to admin or super admin. If you're above admin or admin itself, the training will be automatically publish.
By following these comprehensive steps, you can create engaging and impactful training programs in AcademyKit, empowering your users to enhance their skills and knowledge effectively.
# Progress Monitoring
Source: https://docs.academykit.co/app-documentation/training/lesson-stat
Track the progress of enrolled users and content completion in AcademyKit.
**Progress Monitoring:**
Keep track of participant progress and content completion in AcademyKit by utilizing the following monitoring features:
1. **Progress Bar:**
* Provide trainers and administrators with a visual progress bar and current stage indicator within the training interface. This allows them to monitor the completion status and current progress of enrolled users easily.
2. **Content Completion Tracking:**
* Monitor the completion status of individual content, such as videos, exams, or assignments. Keep track of which content items participants have completed and which ones are pending, enabling personalized guidance and support based on learners' progress.
3. **Enrollment Status Overview:**
* Provide administrators and trainers with an overview of enrollment status, including the number of participants enrolled in each training program and their progress towards completion. This overview facilitates efficient management and intervention as needed to ensure timely completion of training goals.
4. **Real-Time Updates:**
* Enable real-time updates to reflect changes in participant progress and content completion. Ensure that progress tracking data is consistently updated to provide accurate insights into users' learning journeys.
# Adding Content
Source: https://docs.academykit.co/app-documentation/training/lessons
Enhance the learning experience in academykit by adding modules and content to your training program.
**Add Modules and Content:**
Once you've set up the basic details of your training, it's time to add modules and content to enhance the learning experience. Here's a detailed guide on how to structure your modules and select various content elements:
* **Section Structure:**
* **Organize by Topics or Learning Objectives:** Start by determining the overarching topics or learning objectives that your training program will cover. Break down these topics into smaller, manageable sections, which will serve as your sections.
* **Logical Sequencing:** Arrange the modules in a logical order that facilitates progressive learning. Consider the flow of information and ensure that each module builds upon the previous one to create a cohesive learning journey.
* **Consistent Format:** Maintain a consistent format for module titles and descriptions to provide clarity and coherence to participants. Use descriptive titles that accurately reflect the content covered in each module.
* **Content Elements Within Modules:**
* **Videos:** Incorporate video lectures, demonstrations within each module to provide dynamic visual explanations of key concepts. Use high-quality videos with clear audio and visuals to enhance engagement and understanding.
* **PDFs:** Supplement your training with PDF documents containing additional reading materials, reference guides, or worksheets. Ensure that the PDFs are well-formatted and easily accessible to participants.
* **Exams:** Create quizzes, tests, or assessments within specific modules to evaluate learners' comprehension and retention of the material. Specify the duration of each exam and include negative marking for incorrect answers. The marks will be auto-calculated based on the responses provided by participants. Question to the exams can be pulled from the Question pool.
* **Assignments:** Assign practical tasks, projects, or case studies within relevant modules that allow participants to apply their knowledge and skills in real-world scenarios. Include both subjective and objective questions in assignments to assess learners' understanding comprehensively.
* **Live Sessions:** Schedule live event, virtual classrooms, or interactive workshops within designated modules to facilitate real-time interaction and collaboration among participants.
* **Surveys and Feedback:** Include surveys or feedback forms within modules to gather participants' input and assess their understanding and satisfaction with the content. Use this feedback to continuously improve and tailor future training programs to meet learners' needs and expectations.
* **Lesson Completion Requirements:**
* **Progressive Learning:** Set up the system to require learners to complete content within modules before moving on to the next one. This ensures that participants fully engage with the content and master the material at their own pace.
By incorporating these features into your training modules, you can create a comprehensive and interactive learning experience that maximizes participant engagement and knowledge retention.
# Question Pool Setup
Source: https://docs.academykit.co/app-documentation/training/questions
Learn how to create question pools and add questions from those pools to exams.
## Question Pool and Exam Setup
Question pools enable you to organize and manage sets of questions for exams within the application. Follow these steps to create question pools and seamlessly incorporate questions from these pools into your exams.
### Creating a Question Pool
**Steps to Create a New Question Pool:**
1. Log in to the application using your admin or trainer credentials.
2. Navigate to the "Question Pools" section.
3. Locate the option to create a new question pool and click on it.
4. Provide a descriptive name for the question pool.
5. Save the question pool to finalize its creation.
### Adding Questions to a Question Pool
**Steps to Add Questions to a Question Pool:**
1. Choose the desired question pool where you want to add questions.
2. Find the option to add questions to the selected pool.
3. Select the type of questions you wish to include (e.g., multiple-choice, true/false).
4. Enter the question prompt and provide options.
5. Specify the correct answer(s).
6. Save the questions to add them to the question pool.
### Adding Questions from Question Pools to an Exam
**Steps to Add Questions from Question Pools to an Exam:**
1. Edit the exam to which you want to add questions.
2. Look for the option to add questions and choose "From Question Pools."
3. Select the relevant question pool(s) from which to draw questions.
4. Indicate the number of questions to include from each pool.
5. Save the exam settings to implement the changes.
By following these steps, you can effectively create question pools, add questions from those pools to exams.
# Introduction
Source: https://docs.academykit.co/introduction
An overview of the Learning Management System.
Welcome to the official documentation for the AcademyKit LEARNING MANAGEMENT SYSTEM (LMS). This comprehensive guide aims to empower users, administrators, and DevOps engineers with the knowledge and resources needed to maximize the potential of AcademyKit LMS in their educational or organizational settings. Whether you're new to AcademyKit or seeking to deepen your understanding of its features, this documentation will serve as your go-to resource.
## Setting up
The documentation covers a wide range of topics related to AcademyKit LMS, including but not limited to:
1. **Installation and Setup:** Instructions for installing and configuring AcademyKit LMS on various platforms and environments.
2. **User Interface and Experience:** Navigating the AcademyKit interface, accessing training content, and engaging with learning materials.
3. **Training Management:** Creating, organizing, and managing trainings, assessments, assignments, exams, and live sessions.
4. **User Management:** Managing user accounts, roles, permissions, enrollment, and user-related configurations.
5. **Administration and Configuration:** Configuring system settings, themes, languages, and other administrative tasks.
## Key Features
**Course Management:** Allows administrators to create, organize, and manage training courses, including defining course objectives, content, schedules, and prerequisites.
**Participant Management:** Enables registration, enrollment, and tracking of participants for training courses. Provides participant profiles with relevant information such as training history, progress, and certifications.
**Resource Management:** Facilitates the allocation and scheduling of resources required for training, including trainers, classrooms, equipment, and materials.
**Attendance Tracking:** Records and tracks participant attendance for training live sessions and physical training.
**Assessment and Evaluation:** Offers tools for conducting assessments, quizzes, surveys, and evaluations to measure the effectiveness of training programs and gather feedback from participants.
**Progress Monitoring:** Monitors participant progress throughout training programs, including completion status, performance metrics, and achievement of learning objectives.
**Certification Management:** Manages certification.
**Reporting and Analytics:** Generates reports and analytics to provide insights into training performance, participant engagement.
## Benefits
**Streamlined Operations:** Automates manual processes, reduces paperwork, and improves efficiency in managing training activities.
**Enhanced Visibility:** Provides real-time access to training data, schedules, and performance metrics for stakeholders at all levels.
**Improved Compliance:** Ensures adherence to regulatory requirements, industry standards, and organizational policies through centralized tracking and reporting.
**Increased Engagement:** Engages participants with interactive learning experiences, personalized content, and feedback mechanisms.
**Data-Driven Decision Making:** Empowers decision-makers with actionable insights derived from analytics, enabling continuous improvement of training programs.
**Cost Savings:** Optimizes resource utilization, minimizes downtime, and reduces overhead costs associated with training administration.
## Feedback and Contributions
Your feedback and contributions are crucial to the continuous improvement of the AcademyKit LMS software. We welcome your feedback, bug reports, and feature requests to improve functionality, usability, and reliability. You can contact the AcademyKit team through email or the Discord community.
# Application Configuration
Source: https://docs.academykit.co/self-hosting-academykit/configuration
Post deployment Application Configuration
## SMTP Configuration
Setting up SMTP (Simple Mail Transfer Protocol) configuration is necessary for enabling email communication functionalities within the application. Configure SMTP settings by providing sender email addresses, reply email addresses, SMTP server details, authentication credentials, and port numbers to facilitate the sending and receiving of emails.
Ensure SMTP configuration is completed before adding the user, as
failure to do so will result in email containing password not being sent.
## File Storage Configuration
Users must set up file storage configuration to enable seamless storage and access to files within the application. This involves providing details such as server access keys, bucket names, server URLs, and authentication credentials to establish a connection with the designated file storage system.
#### AWS Setup Guide:
1. **Accessing the AWS Management Console**
* Log in to the AWS Management Console.
2. **Create a New Bucket**
* Navigate to the **S3 dashboard**.
* Click **Create bucket** and assign a unique name.
3. **Update the Bucket Access Policy**
* Go to the **Permissions** tab of the newly created bucket.
* Click on **Bucket Policy** and paste the following policy:
```json theme={null}
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadForPublicFolder",
"Effect": "Allow",
"Principal": {
"AWS": [
"*"
]
},
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::bucket-name/public/*"
]
}
]
}
```
* Replace `bucket-name` with your actual bucket name.
4. **Create a Policy**
* In the AWS Management Console, search for **IAM** in the search bar.
* Click on **Policies** in the left menu.
* Click **Create Policy** and select **JSON**. Paste the following policy:
```json theme={null}
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowListBucket",
"Effect": "Allow",
"Action": [
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::bucket-name"
]
},
{
"Sid": "AllowBucketObjectActions",
"Effect": "Allow",
"Action": [
"s3:DeleteObject",
"s3:GetObject",
"s3:PutObject"
],
"Resource": [
"arn:aws:s3:::bucket-name/*"
]
}
]
}
```
* Replace `bucket-name` with your actual bucket name.
* Assign a name to the policy and click **Create Policy**.
5. **Assign the Policy to Group**
* Navigate to **User Groups** in the **IAM** section.
* Create a new group or select an existing one.
* Click **Add User to Group** and assign the user.
* In the **Attached Policies** section, filter by **Customer Managed** and select the policy you just created.
* Click **Attach Policy**.
6. **Create Access Key**
* Go to **Users** and select the user you assigned to the group.
* Navigate to the **Security Credentials** tab.
* Click **Create Access Key**.
* Select **Programmatic Access** and click **Create New Access Key**.
7. **Copy and Use the Following Variables**
* **AWS Access Key**
* **AWS Cloudfront**
* **File Storage Bucket**
* **Region Endpoint**
* **AWS Secret Key**
* **Video Bucket**
#### MinIO Setup Guide:
1. **Accessing the MinIO Server**
* Log in to the MinIO server.
2. **Create a New Bucket**
* Navigate to the **Buckets** section in the MinIO console.
* Click **Create bucket** and assign a unique name.
3. **Update the Bucket Access Policy**
* Click on the created bucket.
* Click **Edit** on the access policy and change it to **Custom**.
* In the **Write Policy** section, paste the following policy:
```json theme={null}
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadForPublicFolder",
"Effect": "Allow",
"Principal": {
"AWS": [
"*"
]
},
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::your-bucket-name/public/*"
]
}
]
}
```
* Replace `your-bucket-name` with your actual bucket name.
* Click **set**.
4. **Create a Policy**
* In the MinIO console, go to **Policies**.
* Click **Create policy**.
* Assign a name to the policy.
* In the **Write Policy** section, paste the following policy:
```json theme={null}
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowListBucket",
"Effect": "Allow",
"Action": [
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::your-bucket-name"
]
},
{
"Sid": "AllowBucketObjectActions",
"Effect": "Allow",
"Action": [
"s3:DeleteObject",
"s3:GetObject",
"s3:PutObject"
],
"Resource": [
"arn:aws:s3:::your-bucket-name/*"
]
}
]
}
```
* Replace `your-bucket-name` with your actual bucket name.
* Click **Save**.
5. **Create a Group and Assign Permissions**
* In MinIO, navigate to **Groups**.
* Click **Create group** and assign a name.
* Click **Create group**.
* Click on the created group.
* In the **Policies** section, select the policy you created.
6. **Create a User and Assign to the Group**
* In MinIO, navigate to **Users**.
* Click **Create user** and assign a username and password.
* Assign the created group to the user.
* Click **Save**.
7. **Create an Access Key**
* Go to **Users** and select the assigned user.
* Navigate to **Service Accounts**.
* Click **Create Access Key**.
* Assign a name and click **Create**.
8. **Copy and Use the Following Variables**
* Server Access Key: This is the unique access key for authenticating your requests to MinIO which is created in step 7.
* Server Secret Key: This is the secret key that pairs with the access key. It is used to authenticate your API requests securely. It is created in step 7 along with the access key.
* Bucket Name: This is the name of the storage bucket you created in MinIO, where your objects are stored.
* Server Endpoint: This is the endpoint address of your MinIO server. It could be something like `minio.yourdomain.com`, which is the URL through which your MinIO instance is accessible.
* Server Presigned URL:
* Server URL: The public URL from which MinIO is accessible, typically `https://minio.yourdomain.com` or something similar.
## General Settings:
1. **Company Logo:** Upload your organization's logo to personalize the platform and enhance brand recognition.
2. **Company Information:** Fill in essential details such as the company name, address, and contact number to provide users with accurate information about the organization.
3. **Mail Signature:** Configure a personalized mail signature to ensure consistency and professionalism in email communications.
## Zoom Settings Configuration
Configuring Zoom settings is essential for users intending to utilize features like live classes within the application. Set up Zoom-related details such as API keys, API secrets, SDK keys, webhook secrets, and other necessary parameters to integrate Zoom functionality seamlessly.
### Zoom License Integration
In addition to configuring Zoom settings, users must integrate a valid Zoom license into their accounts to access advanced features and functionalities offered by Zoom. Adding a Zoom license enhances the capabilities of the application, particularly for conducting live classes and virtual meetings.
## Optional Configuration
### OpenAI API Integration
If you want to use AI-related features, you need the API key of OpenAI, which should be added in the AI setup and enabled.
# Deploy with Docker
Source: https://docs.academykit.co/self-hosting-academykit/deploy-with-docker
Learn how to deploy AcademyKit with Docker
Docker compose is the easiest way to get started with self-hosted AcademyKit. However if you have database on separately installed, then you might want to use the docker run directly.
### Before you begin
You need the following installed in your system:
* [Docker](https://docs.docker.com/engine/install/)
* [docker-compose](https://docs.docker.com/compose/install/) if you want to deploy with docker compose
Prepare the connection string to database as below format
`Server={serverAddress};Database={dbName};User={dbUsername};Password={dbPassword};Convert Zero Datetime=True;`
and replace `{connectionString}` in below command
```bash theme={null}
docker run --name academykit \
-e ConnectionStrings__DefaultConnection="{connectionString}" \
-e JWT__DurationInMinutes=60 \
-e ConnectionStrings__HangfireConnection="{connectionString}Allow User Variables=True;" \
-e Hangfire__User=sysAdmin \
-e Hangfire__Password=sysAdminPassword \
-e AppUrls__App=http://localhost:80 \
-p 80:80 \
--restart always \
academykit/academy:main
```
Now visit [http://localhost:80](http://localhost:80/) to start using AcademyKit.
This is not recommended for production usage
1. Create a docker network
```bash theme={null}
docker network create academy-kit-network
```
2. Run MySQL
Change the password, username and container name as required
```bash theme={null}
docker run --name academykit-db \
--network academy-kit-network \
-e MYSQL_ROOT_PASSWORD=password \
-e MYSQL_USER=academykit \
-e MYSQL_PASSWORD=password \
-e MYSQL_DATABASE=academykit \
-p 3306:3306 \
--restart always \
mysql:8.0.33
```
3. Run the academyKit
Change the environment variables as required.
```bash theme={null}
docker run --name academykit \
--network academy-kit-network \
-e ConnectionStrings__DefaultConnection="Server=academykit-db;Database=academykit;User=academykit;Password=password;Convert Zero Datetime=True;" \
-e JWT__DurationInMinutes=60 \
-e ConnectionStrings__HangfireConnection="Server=academykit-db;Database=academykit;User=academykit;Password=password;Convert Zero Datetime=True;Allow User Variables=True;" \
-e Hangfire__User=sysAdmin \
-e Hangfire__Password=pwadfssw0rd \
-e AppUrls__App=http://localhost:80 \
-p 80:80 \
--restart always \
academykit/academy:main
```
Now visit [http://localhost:80](http://localhost:80/) to start using AcademyKit.
Docker compose is the easiest way to get started with self-hosted AcademyKit.
### Quick Start
1. Create `docker-compose.yml` inside a folder as below:
```yaml docker-compose.yml theme={null}
version: "3.9"
services:
academykit-db:
image: mysql:8.0.33
container_name: academykit-db
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_USER: academykit
MYSQL_PASSWORD: password
MYSQL_DATABASE: academykit
ports:
- "3306:3306"
restart: always
volumes:
- academykit-db-data:/var/lib/mysql
academykit:
image: academykit/academy:main
container_name: academykit
environment:
ConnectionStrings__DefaultConnection: "Server=academykit-db;Database=academykit;User=academykit;Password=password;Convert Zero Datetime=True;"
JWT__DurationInMinutes: "60"
ConnectionStrings__HangfireConnection: "Server=academykit-db;Database=academykit;User=academykit;Password=password;Convert Zero Datetime=True;Allow User Variables=True;"
Hangfire__User: "sysAdmin"
Hangfire__Password: "pwadfssw0rd"
AppUrls__App: "http://localhost:80"
ports:
- "80:80"
restart: always
depends_on:
- academykit-db
volumes:
academykit-db-data:
```
````
2. Run the docker compose
```bash
docker compose up
````
Now visit [http://localhost:80](http://localhost:80/) to start using AcademyKit.
Once app is running, let's go the configure it.
# Introduction
Source: https://docs.academykit.co/self-hosting-academykit/introduction
Self-hosting AcademyKit involves setting up and maintaining your communication infrastructure using your own servers.
If you require guidance on setting up a production-scale configuration,
official IaaS recommendations, please don't hesitate to [contact our
team](https://www.academykit.co/request-demo?utm_campaign=academykitDocs\&utm_content=self-hosting-introduction).
They can provide assistance regarding enterprise edition licenses or
cloud-prem deployment to meet your specific needs.
## Prerequisites:
* MySQL database
* Ubuntu 20.04 (server)
* Docker installed on Ubuntu server
* Object Storage (to store files & videos)
* SMTP Services
* Zoom Account (to setup live class)
## System Recommendations
This page includes information about the minimum requirements you need to install and use self-managed
### CPU
CPU requirements are dependent on the number of users, volume of trainings and expected workload.
* 4 cores is recommended minimum number of cores and supports around 100 users simultaneously.
### Memory
Memory requirements are dependent on the number of users, volume of trainings and expected workload.
* 8 GB RAM is the required minimum memory size and supports up to 100 users
### MySQL server
The server running MySQL should have at least 5-10 GB of storage available, though the exact requirements depend on the number of organizations.
The minimum MySQL version should be >= v8.0.33
Note that these specifications are subject to your requirements, the scale of
your operations, and should be adjusted as needed.