CSC2510 Final Project — DeelTech User-Onboarding Automation System
- 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.
● 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
- The project is divided into four main parts:
- Web Scraper — downloads CS faculty webpage
- Parser — extracts clean names from the webpage
- User Creation Engine — generates usernames/passwords and creates Ubuntu accounts
- 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.
- 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
- To select scraping and parsing type choose option 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.
- 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.
- 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.
- 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.
“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”
- 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.