# Contribution Guidelines

Thank you for your interest in contributing to the Learner Management System Frontend! While this project is currently open-source as a proof-of-concept, and may transition to a closed-source model in the future, we welcome contributions during this open phase to help improve and refine the system.

Please take a moment to review these guidelines before contributing.

## Ways to Contribute

There are several ways you can contribute to this project:

* **Reporting Issues:** If you encounter bugs, errors, or unexpected behavior while using the frontend, please open an issue on the GitHub repository.  When reporting issues, please be as detailed as possible, including:
  * A clear and descriptive title.
  * Steps to reproduce the issue.
  * Your browser and operating system.
  * Screenshots or error messages if applicable.
* **Suggesting Features:** If you have ideas for new features, improvements, or enhancements to the frontend, please open an issue on the GitHub repository with a "feature request" label. Describe your suggestion clearly and explain why you think it would be valuable.
* **Code Contributions (Pull Requests):** If you'd like to contribute code directly, you are welcome to submit pull requests.  Please follow these steps:
    1. **Fork the repository.**
    2. **Create a new branch** for your contribution (e.g., `feature/new-widget` or `bugfix/login-error`).
    3. **Make your changes** in your forked repository.
    4. **Ensure your code adheres to the project's coding style** (see "Coding Style" below).
    5. **Test your changes thoroughly.**
    6. **Submit a pull request** to the main repository's `main` branch.

## Development Setup

To set up your development environment and work on the frontend, please refer to the [README.md](README.md) file for detailed instructions on:

* Prerequisites (Node.js, pnpm)
* Installation
* Running the development server

Make sure you can run the project locally and understand the basic project structure before making significant code contributions.

## Coding Style

We aim for clean, readable, and maintainable code. Please follow these guidelines when contributing code:

* **Typescript:** This project is written in Typescript. Ensure your code is properly typed and utilizes Typescript features effectively.
* **Vanilla Javascript Principles:**  While using Typescript, the core is Vanilla Javascript. Avoid unnecessary dependencies and keep the code as lightweight as possible when appropriate.
* **Bootstrap:**  Utilize Bootstrap classes and components for styling and layout where applicable, maintaining responsiveness.
* **Modularity:** Keep components and widgets modular and reusable.
* **Code Comments:**  Add comments to explain complex logic or non-obvious parts of your code.
* **Consistency:**  Try to maintain consistency with the existing codebase in terms of code style and structure.

## Licensing

This project is currently open-source as a proof-of-concept. The licensing terms are not yet formally defined for this open phase. However, by contributing, you agree that your contributions may be used and incorporated into the project. Please be aware that the licensing and open-source nature of this project may change in the future.

## Questions and Contact

If you have any questions about contributing or the project itself, please open an issue on the GitHub repository or reach out to [Your Name/Contact Information - e.g., your email or GitHub profile link].

We appreciate your contributions to making this Learner Management System Frontend better!
