Skip to content

CRM (Customer Relationship Management) system to use for tracking cybersecurity students.

Notifications You must be signed in to change notification settings

tamu-edu-students/CyberCRM

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CyberCRM

Client: John Romero, Texas A&M Cybersecurity Center

This is a CRM (Customer Relationship Management) system to use for tracking cybersecurity students so information could be easily accessible to program directors. The primary objective is the ability to pull up a profile page with information on any given student while also having the ability to add or update information on the student. The secondary objective is to be able to run reports on given people or organizations with filters. This could include a list of all the students who have taken a certain certification or in a certain cybersecurity organization.

There will be Role-based access control (RBAC) and have three primary roles: Super User, Program Director, Student Worker. Program Directors could be assigned super user access and student workers have the least permissions with only the ability to add or read in certain specified areas. Program directors by default will only be able to view their program information with their student's information.

Website: https://cybercrm-7ccb791b98d3.herokuapp.com/

Code Climate report: https://codeclimate.com/github/tamu-edu-students/CyberCRM

Below are guidelines on how contributions to the GitHub repository should be made.

Branching

When developing locally, a new branch should be created so that you will able to develop without disturbing the main branch.

Please use Kebab Case for the naming convention of the branches (Ex: branch-name). Also, try to make the branch name descriptive as to what change is being made.

Commands:

  1. git branch <branch-name> - Create branch

  2. git checkout <branch-name> - Switch to branch

Commits and Pushing to Remote

When developing, you need to save your changes. Commits let you save changes in the repository. Pushing changes to remote sends a backup of your changes to the central repository. Although you can create as many commits as you'd like it is best to make good commits. This can be characterized by adequately describing what changes have been made as well as only making commits after significant additions, not every line of code

Creating Commits:

  1. Get current changes:

    git status

  2. Add necessary files:

    git add <file-name> - Adding one file

    git add . - Adding all files in your current directory

  3. Committing changes:

    git commit -m <commit message> - Make a commit with a short commit message.

    git commit - Make a commit with a long commit message (Opens a text editor).

Pushing Changes to Remote:

  1. When working in your own branch, you shouldn't have any interference. You should make sure to pull before you push just in case.

    git pull

  2. When making the first push to a new branch:

    git push -u origin <branch name>

  3. When making any other push to the branch:

    git push

Note: Make sure to resolve any merge conflicts before continuing.

Creating Pull Requests

When creating a pull request, it is best to do so on GitHub rather than in the command line interface.

  1. Go to the main repository page: https://github.com/tamu-edu-students/CyberCRM/tree/main.

  2. Click on the branch drop-down and select your branch.

  3. Click on the contribute dropdown and select Open pull request.

  4. Notify another team member or the project manager of the pull request for review.

Cloning

If your on Windows you should use WSL (Windows Subsystem for Linux) and then you can do all the instructions.

It's best to use SSH to clone the repository.

To get an SSH key use this command: ssh-keygen -t ed25519

Use the default file name if you don't already have a default key. Passphrase is optional.

Once you have an SSH key this is how you link it to your GitHub:

  1. Log in to https://github.com.

  2. Go to https://github.com/settings/profile.

  3. Select SSH and GPG keys.

  4. Select New SSH key.

  5. Add a title, select the Authentication Key type, and paste the PUBLIC key (not PRIVATE key) from the public-private key pair.

Once you have the SSH key linked:

  1. git clone [email protected]:tamu-edu-students/CyberCRM.git

  2. cd CyberCRM

If you have multiple keys this is how to use a key other than the default one:

GIT_SSH_COMMAND="ssh -i ~/.ssh/<key_name>" git clone [email protected]:tamu-edu-students/CyberCRM.git

Ruby Install and Setup Instructions

Note: From Ruby homework.

Mac

Install Ruby with Chruby.

Windows

  1. Install WSL
  2. Follow the instructions for Ubuntu.

Ubuntu

  1. Be in home directory: cd ~
  2. Install rbenv with ruby-build: curl -fsSL https://github.com/rbenv/rbenv-installer/raw/HEAD/bin/rbenv-installer | bash
  3. Update bash profile to initialize rbenv: echo 'eval "$(~/.rbenv/bin/rbenv init - bash)"' >> ~/.bashrc
  4. Reload profile: source ~/.bashrc
  5. Install ruby 3.3.1: rbenv install 3.3.1
    • Be patient, this can take several minutes
  6. Be in the directory for this assignment, e.g. cd /path/to/hw-ruby-intro
  7. Set ruby 3.3.1 as the local default version: rbenv local 3.3.1
  8. Install bundler: gem install bundler
    • If it says that a new release of RubyGems is available, follw the instructions on screen to update, e.g. Run gem update --system 3.5.10 to update your installation.
  9. Install dependencies: bundle install

How to run Rails

This is with WSL.

bin/rails server