Skip to content

InsaaneUnicorn/CSC-2510---Dev-Ops-Final-Project

Repository files navigation

USER MANUAL

CSC2510 Final Project — DeelTech User-Onboarding Automation System

1. Introduction

  • The DeelTech Faculty Automation System is a Bash-based tool that automates the process of gathering faculty names from the Tennessee Tech Computer Science department website and creating local Ubuntu user accounts for each professor.
  • This manual explains how to run the program, how each feature works, and what a user needs to know to operate the scripts successfully.

2. Requirements

● An active internet connection
● This program was tested and optimized for
○ Ubuntu 24.
○ Bash 5.2.21+
○ An x86 system
● curl, grep, sed, and awk are installed
● sudo access (required for creating system users)
● A valid license key provided by the admin or a license
file generated by the program and stored in
“etc/csc_user_mgmt”
  • In the terminal in the directory you have the scripts, please make sure to run the following command to make sure the scripts are in executable mode:
chmod +x *.sh

3. Program Components

  • The project is divided into four main parts:
    1. Web Scraper — downloads CS faculty webpage
    2. Parser — extracts clean names from the webpage
    3. User Creation Engine — generates usernames/passwords and creates Ubuntu accounts
    4. License System — validates the license before the program can be used and during the program's use.
  • All scripts are stored in the same project directory.

4. Using the Program

4.1 Running the Program

  • To start, execute the command
    sudo bash ./interface.sh
  • You will see:
    ==== DeelTech Faculty Portal ====
    1) Scrape + Parse (default)
    2) Scrape only
    3) Parse only
    4) Create users from names list
    5) Manually create a user
    6) Exit

4.2 Scraping Names

  • To select scraping and parsing type choose option 1:
    1. Scrape + Parse
  • This will: ● Download the TTU CS faculty page ● Parse out faculty names ● Save them into: data/names.txt
  • You can also run the steps individually by choosing options 2 and 3.

4.3 Bulk User Creation

  • After names have been scraped and parsed, choose option 4:
         4) Create users from names list
    
  • The system will read each line from names.txt, extract the first and last name, and automatically create a user account. Username format: first.last Password format: firstnamelastnameDEELTECH
  • If a user already exists, the script will skip them.

4.4 Manual User Creation

  • The manual user tool allows you to add one user at a time, by selecting:
         5) Manually create a user
    
  • The script will ask for:
● First name (letters only)
● Last name (letters only)
  • It will then generate the username and password using the same format as the bulk creator.

5. License System

  • Before any menu actions can run, the program requires a valid license.
  • There are two ways the license can be provided: 1. A valid .dat license file in: /etc/csc_user_mgmt/ 2. Entering a 16-digit key on first run
  • The key is securely encrypted by a one way hashing algorithm along with a base64 salt. If the key is valid, a license file is created automatically and stored in the license directory.
  • Without a valid license, the program will not run any features. Note: The admin also has a separate script (license.sh) for _generating keys and license files.

6. Troubleshooting

“faculty.html not found”

  • Run scraping again:
   ./web-scraper.sh

“No names.txt found”

  • Scrape + parse before selecting the automatic creation of users. User creation fails
  • Ensure you are running the program with sudo: sudo bash ./interface.sh License error
  • Verify that: ● You entered the correct 16-digit key. ● That there is a license.dat file in path “etc/csc_user_mgmt”

7. Summary

  • This project automates: ● Retrieving faculty names ● Cleaning name data ● Generating credentials ● Creating Ubuntu system users ● Enforcing license validation
  • The scripts are modular and can be run individually or through the main menu. The system reduces manual account creation time and demonstrates core DevOps automation principles.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages