Skip to content

Repository files navigation

FusionIIIT

FusionIIIT is the automation of various functionalities, modules and tasks of/for PDPM Indian Institute of Information Technology, Design and Manufacturing, Jabalpur being developed in python3.8 and using Django Webframework.

System Configuration

Software Requirements

  • Python 3.8
  • Git

Contributing Guidelines

For contributing to this repository, you have to follow the guidelines given in CONTRIBUTING.md and CODE_OF_CONDUCT.md for smooth workflow of contributions and changes inside repository.

How to get started

  • on Ubuntu:

    // Install the required packages using the following command:
    sudo apt install python3-pip python3-dev python3-venv libpq-dev build-essential git
    sudo -H pip3 install --upgrade pip
  • on Windows:

    • Get Python 3.8 from here for AMD64/x64 or here for x86
    • Git from here
    • Install both using the downloaded exe files
      Important: Make sure to check the box that says Add Python 3.x to PATH to ensure that the interpreter will be placed in your execution path

Downloading the Code

  • Go to (https://github.com/FusionIIIT/Fusion) and click on Fork
  • You will be redirected to your fork, https://github.com/<your_user_name>/Fusion
  • Open the terminal, change to the directory where you want to clone the Fusion repository
  • Clone your repository using git clone https://github.com/<your_user_name>/Fusion
  • Enter the cloned directory using cd Fusion/

Setting up environment

  • Create a virtual environment
    • on Ubuntu: python3 -m venv env
    • on Windows PowerShell: python -m venv env
  • Activate the env
    • on Ubuntu: source env/bin/activate
    • on Windows PowerShell: .\env\Scripts\Activate.ps1
      Note : On Windows, it may be required to enable the Activate.ps1 script by setting the execution policy for the user. You can do this by issuing the following command: Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
  • Install the requirements: pip install -r requirements.txt

Running server

  • Change directory to FusionIIITcd FusionIIIT
  • Run the server python manage.py runserver

Working with Code (Method 1)

Setting upstream

  • git remote add upstream https://github.com/FusionIIIT/Fusion
    • Adds the remote repository (the repository you forked from) so that changes can be pulled from/pushed to it

Switching branch

  • git checkout -b <module-name>
    • Creates a new branch <module-name> in your repository
  • git checkout <module-name>
    • Switches to the branch you just created

Migrating Changes (Database)

  • Make migrations $ python manage.py makemigrations
  • Migrate the changes to the database $ python manage.py migrate

Committing

  • git add .
    • Adds the changes to the staging area
  • git commit
    • Commits the staged changes

Syncing

Pulling

  • git pull upstream master
    • Pulls the changes from the upstream master branch

Pushing

  • git push -u origin <module-name>
    • Pushes the changes to your repository (First time only); using git push is sufficient later on
  • Go to https://github.com/<your_user_name>/Fusion/tree/<module-name> and create pull request

Working with Code (Alternative)

Testing Procedure:

Selenium-webdriver

Selenium is a browser automation library. Most often used for testing web-applications, Selenium may be used for any task that requires automating interaction with the browser.

Installation

You can visit Selenium Official website and can download the language-specific client drivers(Java in our case)

https://selenium-release.storage.googleapis.com/3.141/selenium-java-3.141.59.zip

You will need to download additional components to work with each of the major browsers. The drivers for Chrome, Firefox, and Microsoft's IE and Edge web browsers are all standalone executables that should be placed on your system [PATH]. Apple's safaridriver is shipped with Safari 10 for OS X El Capitan and macOS Sierra. You will need to enable Remote Automation in the Develop menu of Safari 10 before testing.

BrowserComponent
ChromeChromeDriver
Internet ExplorerIEDriverServer
FirefoxGeckoDriver

Add the Cucumber Eclipse Plugin for BDD testing

  • Install the Cucumber Eclipse Plugin from Eclipse MarketPlace under help

Getting Started

  • Open the Test folder in Eclipse IDE(You are free to use any IDE)

    • Open the pom.xml and build the project
    • Change the driver path in System.setProperty in line 16 of Step_defination.java
  • Under the src/main/resources we have main.feature file to define Scenarios and Steps

  • Give the step defination of the defined scenarios and steps in Step_Defination.java under src/main/java

Different modules included

  • Academic database management
  • Academic workflows
  • Finance and Accounting
  • Placement Cell
  • Mess management
  • Gymkhana Activities
  • Scholarship and Awards Portal
  • Employee Management
  • Course Management
  • Complaint System
  • File Tracking System
  • Health Centre Mangement
  • Visitor's Hostel Management
  • Leave Module

Notifications Support

The project now supports notifications across all modules. To implement notifications in your module refer to the instructions below.

  • Create your notification class in ./FusionIIIT/notifications/views.py
    def module_notif(sender, recipient, type):
    url='slug:slug'
    module='ModuleName'
    sender = sender
    recipient = recipient
    verb = ''
    // Type conditioned verb
    if type == 'A':
    verb = "A Verb"
    elif type == 'B':
    verb = "B Verb "
    notify.send(sender=sender, recipient=recipient, url=url, module=module, verb=verb)
    
  • Import your Notification class in your module into your_module/views.py
    from notification.views import module_notif
    
  • To create a Notification, simply call the class and pass user objects for sender, receiver and a string type.
    module_notif(sender, receiver, type)
    
  • The Notifications should then appear in the dashboard for the recipient

Setting up Fusion using Docker

  • Make sure you have docker & docker-compose setup properly.
  • Run docker-compose up
  • Once the server starts, run sudo docker exec -i fusion_db_1 psql -U fusion_admin -d fusionlab < path_to_db_dump

About

No description, website, or topics provided.

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - atulkg/Fusion · GitHub
Skip to content

Repository files navigation

FusionIIIT

FusionIIIT is the automation of various functionalities, modules and tasks of/for PDPM Indian Institute of Information Technology, Design and Manufacturing, Jabalpur being developed in python3.8 and using Django Webframework.

System Configuration

Software Requirements

  • Python 3.8
  • Git

Contributing Guidelines

For contributing to this repository, you have to follow the guidelines given in CONTRIBUTING.md and CODE_OF_CONDUCT.md for smooth workflow of contributions and changes inside repository.

How to get started

  • on Ubuntu:

    // Install the required packages using the following command:
    sudo apt install python3-pip python3-dev python3-venv libpq-dev build-essential git
    sudo -H pip3 install --upgrade pip
  • on Windows:

    • Get Python 3.8 from here for AMD64/x64 or here for x86
    • Git from here
    • Install both using the downloaded exe files
      Important: Make sure to check the box that says Add Python 3.x to PATH to ensure that the interpreter will be placed in your execution path

Downloading the Code

  • Go to (https://github.com/FusionIIIT/Fusion) and click on Fork
  • You will be redirected to your fork, https://github.com/<your_user_name>/Fusion
  • Open the terminal, change to the directory where you want to clone the Fusion repository
  • Clone your repository using git clone https://github.com/<your_user_name>/Fusion
  • Enter the cloned directory using cd Fusion/

Setting up environment

  • Create a virtual environment
    • on Ubuntu: python3 -m venv env
    • on Windows PowerShell: python -m venv env
  • Activate the env
    • on Ubuntu: source env/bin/activate
    • on Windows PowerShell: .\env\Scripts\Activate.ps1
      Note : On Windows, it may be required to enable the Activate.ps1 script by setting the execution policy for the user. You can do this by issuing the following command: Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
  • Install the requirements: pip install -r requirements.txt

Running server

  • Change directory to FusionIIITcd FusionIIIT
  • Run the server python manage.py runserver

Working with Code (Method 1)

Setting upstream

  • git remote add upstream https://github.com/FusionIIIT/Fusion
    • Adds the remote repository (the repository you forked from) so that changes can be pulled from/pushed to it

Switching branch

  • git checkout -b <module-name>
    • Creates a new branch <module-name> in your repository
  • git checkout <module-name>
    • Switches to the branch you just created

Migrating Changes (Database)

  • Make migrations $ python manage.py makemigrations
  • Migrate the changes to the database $ python manage.py migrate

Committing

  • git add .
    • Adds the changes to the staging area
  • git commit
    • Commits the staged changes

Syncing

Pulling

  • git pull upstream master
    • Pulls the changes from the upstream master branch

Pushing

  • git push -u origin <module-name>
    • Pushes the changes to your repository (First time only); using git push is sufficient later on
  • Go to https://github.com/<your_user_name>/Fusion/tree/<module-name> and create pull request

Working with Code (Alternative)

Testing Procedure:

Selenium-webdriver

Selenium is a browser automation library. Most often used for testing web-applications, Selenium may be used for any task that requires automating interaction with the browser.

Installation

You can visit Selenium Official website and can download the language-specific client drivers(Java in our case)

https://selenium-release.storage.googleapis.com/3.141/selenium-java-3.141.59.zip

You will need to download additional components to work with each of the major browsers. The drivers for Chrome, Firefox, and Microsoft's IE and Edge web browsers are all standalone executables that should be placed on your system [PATH]. Apple's safaridriver is shipped with Safari 10 for OS X El Capitan and macOS Sierra. You will need to enable Remote Automation in the Develop menu of Safari 10 before testing.

BrowserComponent
ChromeChromeDriver
Internet ExplorerIEDriverServer
FirefoxGeckoDriver

Add the Cucumber Eclipse Plugin for BDD testing

  • Install the Cucumber Eclipse Plugin from Eclipse MarketPlace under help

Getting Started

  • Open the Test folder in Eclipse IDE(You are free to use any IDE)

    • Open the pom.xml and build the project
    • Change the driver path in System.setProperty in line 16 of Step_defination.java
  • Under the src/main/resources we have main.feature file to define Scenarios and Steps

  • Give the step defination of the defined scenarios and steps in Step_Defination.java under src/main/java

Different modules included

  • Academic database management
  • Academic workflows
  • Finance and Accounting
  • Placement Cell
  • Mess management
  • Gymkhana Activities
  • Scholarship and Awards Portal
  • Employee Management
  • Course Management
  • Complaint System
  • File Tracking System
  • Health Centre Mangement
  • Visitor's Hostel Management
  • Leave Module

Notifications Support

The project now supports notifications across all modules. To implement notifications in your module refer to the instructions below.

  • Create your notification class in ./FusionIIIT/notifications/views.py
    def module_notif(sender, recipient, type):
    url='slug:slug'
    module='ModuleName'
    sender = sender
    recipient = recipient
    verb = ''
    // Type conditioned verb
    if type == 'A':
    verb = "A Verb"
    elif type == 'B':
    verb = "B Verb "
    notify.send(sender=sender, recipient=recipient, url=url, module=module, verb=verb)
    
  • Import your Notification class in your module into your_module/views.py
    from notification.views import module_notif
    
  • To create a Notification, simply call the class and pass user objects for sender, receiver and a string type.
    module_notif(sender, receiver, type)
    
  • The Notifications should then appear in the dashboard for the recipient

Setting up Fusion using Docker

  • Make sure you have docker & docker-compose setup properly.
  • Run docker-compose up
  • Once the server starts, run sudo docker exec -i fusion_db_1 psql -U fusion_admin -d fusionlab < path_to_db_dump

About

No description, website, or topics provided.

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - atulkg/Fusion · GitHub
Skip to content

Repository files navigation

FusionIIIT

FusionIIIT is the automation of various functionalities, modules and tasks of/for PDPM Indian Institute of Information Technology, Design and Manufacturing, Jabalpur being developed in python3.8 and using Django Webframework.

System Configuration

Software Requirements

  • Python 3.8
  • Git

Contributing Guidelines

For contributing to this repository, you have to follow the guidelines given in CONTRIBUTING.md and CODE_OF_CONDUCT.md for smooth workflow of contributions and changes inside repository.

How to get started

  • on Ubuntu:

    // Install the required packages using the following command:
    sudo apt install python3-pip python3-dev python3-venv libpq-dev build-essential git
    sudo -H pip3 install --upgrade pip
  • on Windows:

    • Get Python 3.8 from here for AMD64/x64 or here for x86
    • Git from here
    • Install both using the downloaded exe files
      Important: Make sure to check the box that says Add Python 3.x to PATH to ensure that the interpreter will be placed in your execution path

Downloading the Code

  • Go to (https://github.com/FusionIIIT/Fusion) and click on Fork
  • You will be redirected to your fork, https://github.com/<your_user_name>/Fusion
  • Open the terminal, change to the directory where you want to clone the Fusion repository
  • Clone your repository using git clone https://github.com/<your_user_name>/Fusion
  • Enter the cloned directory using cd Fusion/

Setting up environment

  • Create a virtual environment
    • on Ubuntu: python3 -m venv env
    • on Windows PowerShell: python -m venv env
  • Activate the env
    • on Ubuntu: source env/bin/activate
    • on Windows PowerShell: .\env\Scripts\Activate.ps1
      Note : On Windows, it may be required to enable the Activate.ps1 script by setting the execution policy for the user. You can do this by issuing the following command: Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
  • Install the requirements: pip install -r requirements.txt

Running server

  • Change directory to FusionIIITcd FusionIIIT
  • Run the server python manage.py runserver

Working with Code (Method 1)

Setting upstream

  • git remote add upstream https://github.com/FusionIIIT/Fusion
    • Adds the remote repository (the repository you forked from) so that changes can be pulled from/pushed to it

Switching branch

  • git checkout -b <module-name>
    • Creates a new branch <module-name> in your repository
  • git checkout <module-name>
    • Switches to the branch you just created

Migrating Changes (Database)

  • Make migrations $ python manage.py makemigrations
  • Migrate the changes to the database $ python manage.py migrate

Committing

  • git add .
    • Adds the changes to the staging area
  • git commit
    • Commits the staged changes

Syncing

Pulling

  • git pull upstream master
    • Pulls the changes from the upstream master branch

Pushing

  • git push -u origin <module-name>
    • Pushes the changes to your repository (First time only); using git push is sufficient later on
  • Go to https://github.com/<your_user_name>/Fusion/tree/<module-name> and create pull request

Working with Code (Alternative)

Testing Procedure:

Selenium-webdriver

Selenium is a browser automation library. Most often used for testing web-applications, Selenium may be used for any task that requires automating interaction with the browser.

Installation

You can visit Selenium Official website and can download the language-specific client drivers(Java in our case)

https://selenium-release.storage.googleapis.com/3.141/selenium-java-3.141.59.zip

You will need to download additional components to work with each of the major browsers. The drivers for Chrome, Firefox, and Microsoft's IE and Edge web browsers are all standalone executables that should be placed on your system [PATH]. Apple's safaridriver is shipped with Safari 10 for OS X El Capitan and macOS Sierra. You will need to enable Remote Automation in the Develop menu of Safari 10 before testing.

BrowserComponent
ChromeChromeDriver
Internet ExplorerIEDriverServer
FirefoxGeckoDriver

Add the Cucumber Eclipse Plugin for BDD testing

  • Install the Cucumber Eclipse Plugin from Eclipse MarketPlace under help

Getting Started

  • Open the Test folder in Eclipse IDE(You are free to use any IDE)

    • Open the pom.xml and build the project
    • Change the driver path in System.setProperty in line 16 of Step_defination.java
  • Under the src/main/resources we have main.feature file to define Scenarios and Steps

  • Give the step defination of the defined scenarios and steps in Step_Defination.java under src/main/java

Different modules included

  • Academic database management
  • Academic workflows
  • Finance and Accounting
  • Placement Cell
  • Mess management
  • Gymkhana Activities
  • Scholarship and Awards Portal
  • Employee Management
  • Course Management
  • Complaint System
  • File Tracking System
  • Health Centre Mangement
  • Visitor's Hostel Management
  • Leave Module

Notifications Support

The project now supports notifications across all modules. To implement notifications in your module refer to the instructions below.

  • Create your notification class in ./FusionIIIT/notifications/views.py
    def module_notif(sender, recipient, type):
    url='slug:slug'
    module='ModuleName'
    sender = sender
    recipient = recipient
    verb = ''
    // Type conditioned verb
    if type == 'A':
    verb = "A Verb"
    elif type == 'B':
    verb = "B Verb "
    notify.send(sender=sender, recipient=recipient, url=url, module=module, verb=verb)
    
  • Import your Notification class in your module into your_module/views.py
    from notification.views import module_notif
    
  • To create a Notification, simply call the class and pass user objects for sender, receiver and a string type.
    module_notif(sender, receiver, type)
    
  • The Notifications should then appear in the dashboard for the recipient

Setting up Fusion using Docker

  • Make sure you have docker & docker-compose setup properly.
  • Run docker-compose up
  • Once the server starts, run sudo docker exec -i fusion_db_1 psql -U fusion_admin -d fusionlab < path_to_db_dump

About

No description, website, or topics provided.

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - atulkg/Fusion · GitHub
Skip to content

Repository files navigation

FusionIIIT

FusionIIIT is the automation of various functionalities, modules and tasks of/for PDPM Indian Institute of Information Technology, Design and Manufacturing, Jabalpur being developed in python3.8 and using Django Webframework.

System Configuration

Software Requirements

  • Python 3.8
  • Git

Contributing Guidelines

For contributing to this repository, you have to follow the guidelines given in CONTRIBUTING.md and CODE_OF_CONDUCT.md for smooth workflow of contributions and changes inside repository.

How to get started

  • on Ubuntu:

    // Install the required packages using the following command:
    sudo apt install python3-pip python3-dev python3-venv libpq-dev build-essential git
    sudo -H pip3 install --upgrade pip
  • on Windows:

    • Get Python 3.8 from here for AMD64/x64 or here for x86
    • Git from here
    • Install both using the downloaded exe files
      Important: Make sure to check the box that says Add Python 3.x to PATH to ensure that the interpreter will be placed in your execution path

Downloading the Code

  • Go to (https://github.com/FusionIIIT/Fusion) and click on Fork
  • You will be redirected to your fork, https://github.com/<your_user_name>/Fusion
  • Open the terminal, change to the directory where you want to clone the Fusion repository
  • Clone your repository using git clone https://github.com/<your_user_name>/Fusion
  • Enter the cloned directory using cd Fusion/

Setting up environment

  • Create a virtual environment
    • on Ubuntu: python3 -m venv env
    • on Windows PowerShell: python -m venv env
  • Activate the env
    • on Ubuntu: source env/bin/activate
    • on Windows PowerShell: .\env\Scripts\Activate.ps1
      Note : On Windows, it may be required to enable the Activate.ps1 script by setting the execution policy for the user. You can do this by issuing the following command: Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
  • Install the requirements: pip install -r requirements.txt

Running server

  • Change directory to FusionIIITcd FusionIIIT
  • Run the server python manage.py runserver

Working with Code (Method 1)

Setting upstream

  • git remote add upstream https://github.com/FusionIIIT/Fusion
    • Adds the remote repository (the repository you forked from) so that changes can be pulled from/pushed to it

Switching branch

  • git checkout -b <module-name>
    • Creates a new branch <module-name> in your repository
  • git checkout <module-name>
    • Switches to the branch you just created

Migrating Changes (Database)

  • Make migrations $ python manage.py makemigrations
  • Migrate the changes to the database $ python manage.py migrate

Committing

  • git add .
    • Adds the changes to the staging area
  • git commit
    • Commits the staged changes

Syncing

Pulling

  • git pull upstream master
    • Pulls the changes from the upstream master branch

Pushing

  • git push -u origin <module-name>
    • Pushes the changes to your repository (First time only); using git push is sufficient later on
  • Go to https://github.com/<your_user_name>/Fusion/tree/<module-name> and create pull request

Working with Code (Alternative)

Testing Procedure:

Selenium-webdriver

Selenium is a browser automation library. Most often used for testing web-applications, Selenium may be used for any task that requires automating interaction with the browser.

Installation

You can visit Selenium Official website and can download the language-specific client drivers(Java in our case)

https://selenium-release.storage.googleapis.com/3.141/selenium-java-3.141.59.zip

You will need to download additional components to work with each of the major browsers. The drivers for Chrome, Firefox, and Microsoft's IE and Edge web browsers are all standalone executables that should be placed on your system [PATH]. Apple's safaridriver is shipped with Safari 10 for OS X El Capitan and macOS Sierra. You will need to enable Remote Automation in the Develop menu of Safari 10 before testing.

BrowserComponent
ChromeChromeDriver
Internet ExplorerIEDriverServer
FirefoxGeckoDriver

Add the Cucumber Eclipse Plugin for BDD testing

  • Install the Cucumber Eclipse Plugin from Eclipse MarketPlace under help

Getting Started

  • Open the Test folder in Eclipse IDE(You are free to use any IDE)

    • Open the pom.xml and build the project
    • Change the driver path in System.setProperty in line 16 of Step_defination.java
  • Under the src/main/resources we have main.feature file to define Scenarios and Steps

  • Give the step defination of the defined scenarios and steps in Step_Defination.java under src/main/java

Different modules included

  • Academic database management
  • Academic workflows
  • Finance and Accounting
  • Placement Cell
  • Mess management
  • Gymkhana Activities
  • Scholarship and Awards Portal
  • Employee Management
  • Course Management
  • Complaint System
  • File Tracking System
  • Health Centre Mangement
  • Visitor's Hostel Management
  • Leave Module

Notifications Support

The project now supports notifications across all modules. To implement notifications in your module refer to the instructions below.

  • Create your notification class in ./FusionIIIT/notifications/views.py
    def module_notif(sender, recipient, type):
    url='slug:slug'
    module='ModuleName'
    sender = sender
    recipient = recipient
    verb = ''
    // Type conditioned verb
    if type == 'A':
    verb = "A Verb"
    elif type == 'B':
    verb = "B Verb "
    notify.send(sender=sender, recipient=recipient, url=url, module=module, verb=verb)
    
  • Import your Notification class in your module into your_module/views.py
    from notification.views import module_notif
    
  • To create a Notification, simply call the class and pass user objects for sender, receiver and a string type.
    module_notif(sender, receiver, type)
    
  • The Notifications should then appear in the dashboard for the recipient

Setting up Fusion using Docker

  • Make sure you have docker & docker-compose setup properly.
  • Run docker-compose up
  • Once the server starts, run sudo docker exec -i fusion_db_1 psql -U fusion_admin -d fusionlab < path_to_db_dump

About

No description, website, or topics provided.

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - atulkg/Fusion · GitHub
Skip to content

Repository files navigation

FusionIIIT

FusionIIIT is the automation of various functionalities, modules and tasks of/for PDPM Indian Institute of Information Technology, Design and Manufacturing, Jabalpur being developed in python3.8 and using Django Webframework.

System Configuration

Software Requirements

  • Python 3.8
  • Git

Contributing Guidelines

For contributing to this repository, you have to follow the guidelines given in CONTRIBUTING.md and CODE_OF_CONDUCT.md for smooth workflow of contributions and changes inside repository.

How to get started

  • on Ubuntu:

    // Install the required packages using the following command:
    sudo apt install python3-pip python3-dev python3-venv libpq-dev build-essential git
    sudo -H pip3 install --upgrade pip
  • on Windows:

    • Get Python 3.8 from here for AMD64/x64 or here for x86
    • Git from here
    • Install both using the downloaded exe files
      Important: Make sure to check the box that says Add Python 3.x to PATH to ensure that the interpreter will be placed in your execution path

Downloading the Code

  • Go to (https://github.com/FusionIIIT/Fusion) and click on Fork
  • You will be redirected to your fork, https://github.com/<your_user_name>/Fusion
  • Open the terminal, change to the directory where you want to clone the Fusion repository
  • Clone your repository using git clone https://github.com/<your_user_name>/Fusion
  • Enter the cloned directory using cd Fusion/

Setting up environment

  • Create a virtual environment
    • on Ubuntu: python3 -m venv env
    • on Windows PowerShell: python -m venv env
  • Activate the env
    • on Ubuntu: source env/bin/activate
    • on Windows PowerShell: .\env\Scripts\Activate.ps1
      Note : On Windows, it may be required to enable the Activate.ps1 script by setting the execution policy for the user. You can do this by issuing the following command: Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
  • Install the requirements: pip install -r requirements.txt

Running server

  • Change directory to FusionIIITcd FusionIIIT
  • Run the server python manage.py runserver

Working with Code (Method 1)

Setting upstream

  • git remote add upstream https://github.com/FusionIIIT/Fusion
    • Adds the remote repository (the repository you forked from) so that changes can be pulled from/pushed to it

Switching branch

  • git checkout -b <module-name>
    • Creates a new branch <module-name> in your repository
  • git checkout <module-name>
    • Switches to the branch you just created

Migrating Changes (Database)

  • Make migrations $ python manage.py makemigrations
  • Migrate the changes to the database $ python manage.py migrate

Committing

  • git add .
    • Adds the changes to the staging area
  • git commit
    • Commits the staged changes

Syncing

Pulling

  • git pull upstream master
    • Pulls the changes from the upstream master branch

Pushing

  • git push -u origin <module-name>
    • Pushes the changes to your repository (First time only); using git push is sufficient later on
  • Go to https://github.com/<your_user_name>/Fusion/tree/<module-name> and create pull request

Working with Code (Alternative)

Testing Procedure:

Selenium-webdriver

Selenium is a browser automation library. Most often used for testing web-applications, Selenium may be used for any task that requires automating interaction with the browser.

Installation

You can visit Selenium Official website and can download the language-specific client drivers(Java in our case)

https://selenium-release.storage.googleapis.com/3.141/selenium-java-3.141.59.zip

You will need to download additional components to work with each of the major browsers. The drivers for Chrome, Firefox, and Microsoft's IE and Edge web browsers are all standalone executables that should be placed on your system [PATH]. Apple's safaridriver is shipped with Safari 10 for OS X El Capitan and macOS Sierra. You will need to enable Remote Automation in the Develop menu of Safari 10 before testing.

BrowserComponent
ChromeChromeDriver
Internet ExplorerIEDriverServer
FirefoxGeckoDriver

Add the Cucumber Eclipse Plugin for BDD testing

  • Install the Cucumber Eclipse Plugin from Eclipse MarketPlace under help

Getting Started

  • Open the Test folder in Eclipse IDE(You are free to use any IDE)

    • Open the pom.xml and build the project
    • Change the driver path in System.setProperty in line 16 of Step_defination.java
  • Under the src/main/resources we have main.feature file to define Scenarios and Steps

  • Give the step defination of the defined scenarios and steps in Step_Defination.java under src/main/java

Different modules included

  • Academic database management
  • Academic workflows
  • Finance and Accounting
  • Placement Cell
  • Mess management
  • Gymkhana Activities
  • Scholarship and Awards Portal
  • Employee Management
  • Course Management
  • Complaint System
  • File Tracking System
  • Health Centre Mangement
  • Visitor's Hostel Management
  • Leave Module

Notifications Support

The project now supports notifications across all modules. To implement notifications in your module refer to the instructions below.

  • Create your notification class in ./FusionIIIT/notifications/views.py
    def module_notif(sender, recipient, type):
    url='slug:slug'
    module='ModuleName'
    sender = sender
    recipient = recipient
    verb = ''
    // Type conditioned verb
    if type == 'A':
    verb = "A Verb"
    elif type == 'B':
    verb = "B Verb "
    notify.send(sender=sender, recipient=recipient, url=url, module=module, verb=verb)
    
  • Import your Notification class in your module into your_module/views.py
    from notification.views import module_notif
    
  • To create a Notification, simply call the class and pass user objects for sender, receiver and a string type.
    module_notif(sender, receiver, type)
    
  • The Notifications should then appear in the dashboard for the recipient

Setting up Fusion using Docker

  • Make sure you have docker & docker-compose setup properly.
  • Run docker-compose up
  • Once the server starts, run sudo docker exec -i fusion_db_1 psql -U fusion_admin -d fusionlab < path_to_db_dump

About

No description, website, or topics provided.

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - atulkg/Fusion · GitHub
Skip to content

Repository files navigation

FusionIIIT

FusionIIIT is the automation of various functionalities, modules and tasks of/for PDPM Indian Institute of Information Technology, Design and Manufacturing, Jabalpur being developed in python3.8 and using Django Webframework.

System Configuration

Software Requirements

  • Python 3.8
  • Git

Contributing Guidelines

For contributing to this repository, you have to follow the guidelines given in CONTRIBUTING.md and CODE_OF_CONDUCT.md for smooth workflow of contributions and changes inside repository.

How to get started

  • on Ubuntu:

    // Install the required packages using the following command:
    sudo apt install python3-pip python3-dev python3-venv libpq-dev build-essential git
    sudo -H pip3 install --upgrade pip
  • on Windows:

    • Get Python 3.8 from here for AMD64/x64 or here for x86
    • Git from here
    • Install both using the downloaded exe files
      Important: Make sure to check the box that says Add Python 3.x to PATH to ensure that the interpreter will be placed in your execution path

Downloading the Code

  • Go to (https://github.com/FusionIIIT/Fusion) and click on Fork
  • You will be redirected to your fork, https://github.com/<your_user_name>/Fusion
  • Open the terminal, change to the directory where you want to clone the Fusion repository
  • Clone your repository using git clone https://github.com/<your_user_name>/Fusion
  • Enter the cloned directory using cd Fusion/

Setting up environment

  • Create a virtual environment
    • on Ubuntu: python3 -m venv env
    • on Windows PowerShell: python -m venv env
  • Activate the env
    • on Ubuntu: source env/bin/activate
    • on Windows PowerShell: .\env\Scripts\Activate.ps1
      Note : On Windows, it may be required to enable the Activate.ps1 script by setting the execution policy for the user. You can do this by issuing the following command: Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
  • Install the requirements: pip install -r requirements.txt

Running server

  • Change directory to FusionIIITcd FusionIIIT
  • Run the server python manage.py runserver

Working with Code (Method 1)

Setting upstream

  • git remote add upstream https://github.com/FusionIIIT/Fusion
    • Adds the remote repository (the repository you forked from) so that changes can be pulled from/pushed to it

Switching branch

  • git checkout -b <module-name>
    • Creates a new branch <module-name> in your repository
  • git checkout <module-name>
    • Switches to the branch you just created

Migrating Changes (Database)

  • Make migrations $ python manage.py makemigrations
  • Migrate the changes to the database $ python manage.py migrate

Committing

  • git add .
    • Adds the changes to the staging area
  • git commit
    • Commits the staged changes

Syncing

Pulling

  • git pull upstream master
    • Pulls the changes from the upstream master branch

Pushing

  • git push -u origin <module-name>
    • Pushes the changes to your repository (First time only); using git push is sufficient later on
  • Go to https://github.com/<your_user_name>/Fusion/tree/<module-name> and create pull request

Working with Code (Alternative)

Testing Procedure:

Selenium-webdriver

Selenium is a browser automation library. Most often used for testing web-applications, Selenium may be used for any task that requires automating interaction with the browser.

Installation

You can visit Selenium Official website and can download the language-specific client drivers(Java in our case)

https://selenium-release.storage.googleapis.com/3.141/selenium-java-3.141.59.zip

You will need to download additional components to work with each of the major browsers. The drivers for Chrome, Firefox, and Microsoft's IE and Edge web browsers are all standalone executables that should be placed on your system [PATH]. Apple's safaridriver is shipped with Safari 10 for OS X El Capitan and macOS Sierra. You will need to enable Remote Automation in the Develop menu of Safari 10 before testing.

BrowserComponent
ChromeChromeDriver
Internet ExplorerIEDriverServer
FirefoxGeckoDriver

Add the Cucumber Eclipse Plugin for BDD testing

  • Install the Cucumber Eclipse Plugin from Eclipse MarketPlace under help

Getting Started

  • Open the Test folder in Eclipse IDE(You are free to use any IDE)

    • Open the pom.xml and build the project
    • Change the driver path in System.setProperty in line 16 of Step_defination.java
  • Under the src/main/resources we have main.feature file to define Scenarios and Steps

  • Give the step defination of the defined scenarios and steps in Step_Defination.java under src/main/java

Different modules included

  • Academic database management
  • Academic workflows
  • Finance and Accounting
  • Placement Cell
  • Mess management
  • Gymkhana Activities
  • Scholarship and Awards Portal
  • Employee Management
  • Course Management
  • Complaint System
  • File Tracking System
  • Health Centre Mangement
  • Visitor's Hostel Management
  • Leave Module

Notifications Support

The project now supports notifications across all modules. To implement notifications in your module refer to the instructions below.

  • Create your notification class in ./FusionIIIT/notifications/views.py
    def module_notif(sender, recipient, type):
    url='slug:slug'
    module='ModuleName'
    sender = sender
    recipient = recipient
    verb = ''
    // Type conditioned verb
    if type == 'A':
    verb = "A Verb"
    elif type == 'B':
    verb = "B Verb "
    notify.send(sender=sender, recipient=recipient, url=url, module=module, verb=verb)
    
  • Import your Notification class in your module into your_module/views.py
    from notification.views import module_notif
    
  • To create a Notification, simply call the class and pass user objects for sender, receiver and a string type.
    module_notif(sender, receiver, type)
    
  • The Notifications should then appear in the dashboard for the recipient

Setting up Fusion using Docker

  • Make sure you have docker & docker-compose setup properly.
  • Run docker-compose up
  • Once the server starts, run sudo docker exec -i fusion_db_1 psql -U fusion_admin -d fusionlab < path_to_db_dump

About

No description, website, or topics provided.

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - atulkg/Fusion · GitHub
Skip to content

Repository files navigation

FusionIIIT

FusionIIIT is the automation of various functionalities, modules and tasks of/for PDPM Indian Institute of Information Technology, Design and Manufacturing, Jabalpur being developed in python3.8 and using Django Webframework.

System Configuration

Software Requirements

  • Python 3.8
  • Git

Contributing Guidelines

For contributing to this repository, you have to follow the guidelines given in CONTRIBUTING.md and CODE_OF_CONDUCT.md for smooth workflow of contributions and changes inside repository.

How to get started

  • on Ubuntu:

    // Install the required packages using the following command:
    sudo apt install python3-pip python3-dev python3-venv libpq-dev build-essential git
    sudo -H pip3 install --upgrade pip
  • on Windows:

    • Get Python 3.8 from here for AMD64/x64 or here for x86
    • Git from here
    • Install both using the downloaded exe files
      Important: Make sure to check the box that says Add Python 3.x to PATH to ensure that the interpreter will be placed in your execution path

Downloading the Code

  • Go to (https://github.com/FusionIIIT/Fusion) and click on Fork
  • You will be redirected to your fork, https://github.com/<your_user_name>/Fusion
  • Open the terminal, change to the directory where you want to clone the Fusion repository
  • Clone your repository using git clone https://github.com/<your_user_name>/Fusion
  • Enter the cloned directory using cd Fusion/

Setting up environment

  • Create a virtual environment
    • on Ubuntu: python3 -m venv env
    • on Windows PowerShell: python -m venv env
  • Activate the env
    • on Ubuntu: source env/bin/activate
    • on Windows PowerShell: .\env\Scripts\Activate.ps1
      Note : On Windows, it may be required to enable the Activate.ps1 script by setting the execution policy for the user. You can do this by issuing the following command: Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
  • Install the requirements: pip install -r requirements.txt

Running server

  • Change directory to FusionIIITcd FusionIIIT
  • Run the server python manage.py runserver

Working with Code (Method 1)

Setting upstream

  • git remote add upstream https://github.com/FusionIIIT/Fusion
    • Adds the remote repository (the repository you forked from) so that changes can be pulled from/pushed to it

Switching branch

  • git checkout -b <module-name>
    • Creates a new branch <module-name> in your repository
  • git checkout <module-name>
    • Switches to the branch you just created

Migrating Changes (Database)

  • Make migrations $ python manage.py makemigrations
  • Migrate the changes to the database $ python manage.py migrate

Committing

  • git add .
    • Adds the changes to the staging area
  • git commit
    • Commits the staged changes

Syncing

Pulling

  • git pull upstream master
    • Pulls the changes from the upstream master branch

Pushing

  • git push -u origin <module-name>
    • Pushes the changes to your repository (First time only); using git push is sufficient later on
  • Go to https://github.com/<your_user_name>/Fusion/tree/<module-name> and create pull request

Working with Code (Alternative)

Testing Procedure:

Selenium-webdriver

Selenium is a browser automation library. Most often used for testing web-applications, Selenium may be used for any task that requires automating interaction with the browser.

Installation

You can visit Selenium Official website and can download the language-specific client drivers(Java in our case)

https://selenium-release.storage.googleapis.com/3.141/selenium-java-3.141.59.zip

You will need to download additional components to work with each of the major browsers. The drivers for Chrome, Firefox, and Microsoft's IE and Edge web browsers are all standalone executables that should be placed on your system [PATH]. Apple's safaridriver is shipped with Safari 10 for OS X El Capitan and macOS Sierra. You will need to enable Remote Automation in the Develop menu of Safari 10 before testing.

BrowserComponent
ChromeChromeDriver
Internet ExplorerIEDriverServer
FirefoxGeckoDriver

Add the Cucumber Eclipse Plugin for BDD testing

  • Install the Cucumber Eclipse Plugin from Eclipse MarketPlace under help

Getting Started

  • Open the Test folder in Eclipse IDE(You are free to use any IDE)

    • Open the pom.xml and build the project
    • Change the driver path in System.setProperty in line 16 of Step_defination.java
  • Under the src/main/resources we have main.feature file to define Scenarios and Steps

  • Give the step defination of the defined scenarios and steps in Step_Defination.java under src/main/java

Different modules included

  • Academic database management
  • Academic workflows
  • Finance and Accounting
  • Placement Cell
  • Mess management
  • Gymkhana Activities
  • Scholarship and Awards Portal
  • Employee Management
  • Course Management
  • Complaint System
  • File Tracking System
  • Health Centre Mangement
  • Visitor's Hostel Management
  • Leave Module

Notifications Support

The project now supports notifications across all modules. To implement notifications in your module refer to the instructions below.

  • Create your notification class in ./FusionIIIT/notifications/views.py
    def module_notif(sender, recipient, type):
    url='slug:slug'
    module='ModuleName'
    sender = sender
    recipient = recipient
    verb = ''
    // Type conditioned verb
    if type == 'A':
    verb = "A Verb"
    elif type == 'B':
    verb = "B Verb "
    notify.send(sender=sender, recipient=recipient, url=url, module=module, verb=verb)
    
  • Import your Notification class in your module into your_module/views.py
    from notification.views import module_notif
    
  • To create a Notification, simply call the class and pass user objects for sender, receiver and a string type.
    module_notif(sender, receiver, type)
    
  • The Notifications should then appear in the dashboard for the recipient

Setting up Fusion using Docker

  • Make sure you have docker & docker-compose setup properly.
  • Run docker-compose up
  • Once the server starts, run sudo docker exec -i fusion_db_1 psql -U fusion_admin -d fusionlab < path_to_db_dump

About

No description, website, or topics provided.

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); GitHub - atulkg/Fusion · GitHub
Skip to content

Repository files navigation

FusionIIIT

FusionIIIT is the automation of various functionalities, modules and tasks of/for PDPM Indian Institute of Information Technology, Design and Manufacturing, Jabalpur being developed in python3.8 and using Django Webframework.

System Configuration

Software Requirements

  • Python 3.8
  • Git

Contributing Guidelines

For contributing to this repository, you have to follow the guidelines given in CONTRIBUTING.md and CODE_OF_CONDUCT.md for smooth workflow of contributions and changes inside repository.

How to get started

  • on Ubuntu:

    // Install the required packages using the following command:
    sudo apt install python3-pip python3-dev python3-venv libpq-dev build-essential git
    sudo -H pip3 install --upgrade pip
  • on Windows:

    • Get Python 3.8 from here for AMD64/x64 or here for x86
    • Git from here
    • Install both using the downloaded exe files
      Important: Make sure to check the box that says Add Python 3.x to PATH to ensure that the interpreter will be placed in your execution path

Downloading the Code

  • Go to (https://github.com/FusionIIIT/Fusion) and click on Fork
  • You will be redirected to your fork, https://github.com/<your_user_name>/Fusion
  • Open the terminal, change to the directory where you want to clone the Fusion repository
  • Clone your repository using git clone https://github.com/<your_user_name>/Fusion
  • Enter the cloned directory using cd Fusion/

Setting up environment

  • Create a virtual environment
    • on Ubuntu: python3 -m venv env
    • on Windows PowerShell: python -m venv env
  • Activate the env
    • on Ubuntu: source env/bin/activate
    • on Windows PowerShell: .\env\Scripts\Activate.ps1
      Note : On Windows, it may be required to enable the Activate.ps1 script by setting the execution policy for the user. You can do this by issuing the following command: Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
  • Install the requirements: pip install -r requirements.txt

Running server

  • Change directory to FusionIIITcd FusionIIIT
  • Run the server python manage.py runserver

Working with Code (Method 1)

Setting upstream

  • git remote add upstream https://github.com/FusionIIIT/Fusion
    • Adds the remote repository (the repository you forked from) so that changes can be pulled from/pushed to it

Switching branch

  • git checkout -b <module-name>
    • Creates a new branch <module-name> in your repository
  • git checkout <module-name>
    • Switches to the branch you just created

Migrating Changes (Database)

  • Make migrations $ python manage.py makemigrations
  • Migrate the changes to the database $ python manage.py migrate

Committing

  • git add .
    • Adds the changes to the staging area
  • git commit
    • Commits the staged changes

Syncing

Pulling

  • git pull upstream master
    • Pulls the changes from the upstream master branch

Pushing

  • git push -u origin <module-name>
    • Pushes the changes to your repository (First time only); using git push is sufficient later on
  • Go to https://github.com/<your_user_name>/Fusion/tree/<module-name> and create pull request

Working with Code (Alternative)

Testing Procedure:

Selenium-webdriver

Selenium is a browser automation library. Most often used for testing web-applications, Selenium may be used for any task that requires automating interaction with the browser.

Installation

You can visit Selenium Official website and can download the language-specific client drivers(Java in our case)

https://selenium-release.storage.googleapis.com/3.141/selenium-java-3.141.59.zip

You will need to download additional components to work with each of the major browsers. The drivers for Chrome, Firefox, and Microsoft's IE and Edge web browsers are all standalone executables that should be placed on your system [PATH]. Apple's safaridriver is shipped with Safari 10 for OS X El Capitan and macOS Sierra. You will need to enable Remote Automation in the Develop menu of Safari 10 before testing.

BrowserComponent
ChromeChromeDriver
Internet ExplorerIEDriverServer
FirefoxGeckoDriver

Add the Cucumber Eclipse Plugin for BDD testing

  • Install the Cucumber Eclipse Plugin from Eclipse MarketPlace under help

Getting Started

  • Open the Test folder in Eclipse IDE(You are free to use any IDE)

    • Open the pom.xml and build the project
    • Change the driver path in System.setProperty in line 16 of Step_defination.java
  • Under the src/main/resources we have main.feature file to define Scenarios and Steps

  • Give the step defination of the defined scenarios and steps in Step_Defination.java under src/main/java

Different modules included

  • Academic database management
  • Academic workflows
  • Finance and Accounting
  • Placement Cell
  • Mess management
  • Gymkhana Activities
  • Scholarship and Awards Portal
  • Employee Management
  • Course Management
  • Complaint System
  • File Tracking System
  • Health Centre Mangement
  • Visitor's Hostel Management
  • Leave Module

Notifications Support

The project now supports notifications across all modules. To implement notifications in your module refer to the instructions below.

  • Create your notification class in ./FusionIIIT/notifications/views.py
    def module_notif(sender, recipient, type):
    url='slug:slug'
    module='ModuleName'
    sender = sender
    recipient = recipient
    verb = ''
    // Type conditioned verb
    if type == 'A':
    verb = "A Verb"
    elif type == 'B':
    verb = "B Verb "
    notify.send(sender=sender, recipient=recipient, url=url, module=module, verb=verb)
    
  • Import your Notification class in your module into your_module/views.py
    from notification.views import module_notif
    
  • To create a Notification, simply call the class and pass user objects for sender, receiver and a string type.
    module_notif(sender, receiver, type)
    
  • The Notifications should then appear in the dashboard for the recipient

Setting up Fusion using Docker

  • Make sure you have docker & docker-compose setup properly.
  • Run docker-compose up
  • Once the server starts, run sudo docker exec -i fusion_db_1 psql -U fusion_admin -d fusionlab < path_to_db_dump

About

No description, website, or topics provided.

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages