Project CS 3377

 Updated 3/29 with project grading %s CS 3377 Project The goal: create several versions of a process that updates and saves a binary file as a new file. The Setup This project will be done in 4 parts. To keep them separate, I implemented a factory pattern so that you (and the autograder) can test each copying method separately. It will look like this: FileModifierFactory: creates 1. Part1SimpleFileModifier: fill in during part 1 2. Part2MultiProcessModifier: fill in during part 2 3. Part3ThreadedModifier: fill in during part 3 4. Part4SocketModifier: fill in during part 4 You will be given (and not need to modify): 1. main.cpp. Launches the appropriate test based on the arguments 2. Util.cpp/h. Includes some useful attributes. 3. FileModifierFactory.cpp & .h. These build the proper PartXModifier based on the argument. 4. PipeCopier.cpp & .h. Helps you with the pipe for part 2. While each part will be tested separately, you are encouraged to reuse code as much of it will be useful for multiple parts. The File The file you are to read, modify, and save is a binary file that contains a sales list. A binary file is a non-text file, meaning some things (like numbers) aren’t stored as digits but as the ints/floats you use as variables. The name of the files to read and write will be in Util.h. The file will be structured like this: Field Size Type Purpose HEADER NumEntries 4 bytes Integer Tells you how many entries you need to read ENTRY (repeated NumEntries times) Date/Time sizeof(time_t) Time Timestamp (# seconds since 1/1/1970) Item ID Sizeof(int) Integer Item’s code Item Name 50 bytes char* Name of the item sold Item Quantity Sizeof(int) Integer Number sold Item Price Sizeof(float) Float Price of the products What You’ll Do In each part, the goal is to copy the file, adding two additional sales: 1. The Sobell book: a. Time 1612195200 (2/1/2020 4 PM GMT) b. ID 4636152 c. Name “A Programming Guide to Linux Commands, Editors, and Shell Programming by Sobell” [warning: this is more than 49 characters, so you have to truncate it—I say 49 because you need a null terminator] d. Quantity: 70 e. Price: 70.99 2. The Advanced Programming book a. Time 1613412000 (2/15/2020 6 PM GMT) b. ID 6530927 c. Name “Advanced Programming in the UNIX Environment by Stevens and Rago” [warning: more than 49 characters again] d. Quantity: 68 e. Price: 89.99 Be sure to update the total number of entries to account for these new ones. Part 1 (Due 3/29, worth 20%) You will read in the file (Util::inputFileName), add the two entries, and save the file (Util::outputFileName) using open(), close(), read(), and write(). You must use the low-level functions we will talk about in APUE chapter 3 (open, close, read, write). Failure to do so will result in 0 points for this part of the project. It is highly recommended that you do the file reading and writing in class(es) outside Part1SimpleFileModifier, as that code will be useful later. Part 2 (Due 4/12, worth 20%) In this case you will spawn a new process using fork() and exec(), and split the responsibilities like this: 1. The original process will read the file (2nd argument=2) and then write the data over a pipe to the child process. 2. The child process will read the file from the pipe (which will be set to standard input) and write the data to the output file. 3. PipeMaker will take care of the pipe setup for you: a. Create PipeMaker before the fork. b. In the parent process, call setUpToWrite() to ready this process for writing. You’ll get back the file descriptor to write to. Write the file data to that file descriptor (hint: it’s just like writing to a file). c. In the child process, before execing, call setUpToRead() to dup the pipe output to standard input. You can then exec the process (21S_CS3377_Project) with the write option (2nd argument=3), read the data from standard input (just a file descriptor, remember!), and write to the output file. d. Either the parent or the child process can do the update (but not both, obviously). When calling exec, use the command 21S_CS3377_Project 2 3. This will trigger main to give you the proper setup for the child process. You will be responsible for spotting the Util::IOType of WRITE (3), and read from standard input rather than the input file. Part 3 (Due 4/26, worth 30%) In this part you will create a thread and pass the file data from one thread to the other. The threads will be like this: 1. Main thread: read the data, create the thread, and pass the data along 2. Created thread: receive the data and output it to the file I did all of this inside of Part3ThreadedModifier. Create a mutex and condition for both threads to share, and pass a pointer to the Part3ThreadedModifier object to pthread_create (and read it in the other thread). Then you can use the shared mutex and condition to coordinate passing the data. The easiest way to pass the data is to use a variable inside Part3ThreadedModifier (type EntryInfo). The main thread should lock the mutex before creating the receiving thread (and the receiving thread should attempt to lock the mutex right after it starts up) to ensure the proper ordering. Then do a loop in each thread like this: Main (sending) thread Receiving thread Wait on shared condition (for writing thread to be ready) Signal condition to say we’re ready Wait on condition (for an entry to be ready) Update the variable with the next entry Signal the condition Loop around and wait on the condition again Retrieve the info, save it for later writing Loop around and signal the condition again Once you’ve passed all the entries (5 or 7 depending on where you want to add the new ones), unlock the mutex on both sides. Part 4 (Due 5/10, worth 30%) Here you will use two processes again, this time with a socket connecting them. A port number to use (12345) is at Util::portNumber. • Note: if you get an error that the port is already in use, it’s likely because you just ran the project and the operating system hasn’t released the port yet. You can either wait a bit (a few minutes at most) or change the port number (12346, etc.). When I did this step, I reversed the setup from part 2: the main process here reads from the socket (writing to the output file) and the spawned process writes to the socket (reading from the input file). Again, it is up to you where you want to add the two new entries. When you spawn the 2nd process, use 21S_CS3377_Project 4 3. After the fork, the socket reading process (parent process for me) creates a socket and listens on that socket using the port number above. The socket writing process (child process for me) creates a socket and connects to the listen socket. Depending on the timing of things the listen socket may not be ready the first time; here is code to repeatedly wait for the listen socket to be available: int amountToWait = 1; while ( connect(fileDescriptor, (struct sockaddr*) &serverAddress, sizeof(serverAddress))) {  if ( errno != ECONNREFUSED) {  // Something unexpected happened  throw FileModifyException(“Error connecting”);  }  std::cout << "Not ready to connect yet...n";  // Exponential backoff  sleep(amountToWait);  amountToWait = amountToWait * 2; } Once the connection is made (reader gets back a file descriptor from accept() and the writer gets out of the loop above) you can transfer the data. Remember that a socket is just a file descriptor, so your code to write/read from earlier parts will work here, too. 

Event Management App

 

  • Start by creating a new branch in I211_flask called “unit-2”
    • It must be in I211_flask!
  • All event data should be stored in the file ‘events.csv’ 
    • The file should contain AT LEAST 4 headers: name, date, host, description
       
  • All templates should extend base.html
  • Route: /
    Template: index.html

    • Create a homepage for your application
    • This page must contain the following:
      • logo
      • title
      • description
      • a button that takes you to the /events/ route
  • Route: /events/
    Template: events.html

    • This page will list the date and name of all events, pulling the data in from ‘events.csv’
    • Events should be ordered by date with oldest on top
    • Each event name should be a link to the individual event page (route /events/) by event ID
    • The page should contain a button link to create a new event (route /events/create)
  • Route: /events/
    Template: event.html

    • This page will contain all of the data for the event:
      • Event name, date, host, description.
    • The page will also contain button links to:
      • Edit the event (route: /events//edit)
      • Delete the event (route: /events//delete)
  • Route: /events/create
    Template: event_form.html

    • This page will contain a form to collect all of the data for the event:
      • Event name, date, host, description.
      • The form will also contain reset and submit buttons
      • Upon submission, the event data will be added to the events.csv file and the page will redirect to the /events/ route.
  • Route: /events//edit
    Template: event_form.html

    • This page will contain the same form from /event/create to collect all of the data for the event:
      • Event name, date, host, description.
    • The form will also contain reset and submit buttons
    • The pre-existing event data should be loaded into the form fields
    • Upon submission, the relevant event data will be changed in the events.csv file and the page will redirect to the /event/ route.
  • Route: /events//delete
    Template: delete_form.html

    • Presents a delete confirmation page for the event specified by :
      • Display “Confirm Delete?”
      • Show the description for the event
      • The “Go Back” button takes the user back to the /event// page without deleting the event.
      • The “Delete” button will delete the event data from the events.csv file and redirect back to the /events/ route.

perimeter defence

 The general description of your organization (think about organizations other than IT organizations; i.e. non-profits in your geographic area, healthcare businesses, retail businesses, manufacturing businesses, etc.) You will be writing a security policy for this business. Picking a non-profit might be a nice idea. It gets you involved in your community. 

Digital Forensics – 11 – Assignment

  

Read Chapter 9 of the Graves text, Document Analysis.

Using above point as a reference, eExplain the concept of information stores. Why is an understanding of how different clients store messaging information critical to the success of an email search?

Attaching Textbook please refer to chapter 9 for this assignment.

Week 5 Assignment

Learn About creating good password security. An IT Security consultant has made three primary recommendations regarding passwords:

1. Prohibit guessable passwords

  • such as common names, real words, numbers only
  • require special characters and a mix of caps, lower case and numbers in passwords

2. Reauthenticate before changing passwords

  • user must enter old password before creating new one

3.Make authenticators unforgeable 

  • do not allow email or user ID as password

Using WORD, write a brief paper of 250 words explaining each of these security recommendations.  Do you agree or disagree with these recommendations. Would you change, add or delete any of these?  Add additional criteria as you see necessary. 

Note: Intext citations with 2 references needed.

LAB

  

Questions

1) Summarize what you’ve done in this lab as if you are explaining it to your CEO or another important non-technical person.

2) Given that you have learned the names of the SDLC phases, which SDLC phases have you seen/used in this lab? You may write what you did, what you saw in the Azure cloud environment & Azure DevOps menus. 

Computer science

 

  • Week 5: Network Security
    • Propose an appropriate network infrastructure that offers sound security practices for the existing intranet and the new proposed expansion.
    • Create and describe a diagram of the network architecture, discussing how it can meet the goals of the company.
    • Describe the access controls and how the company can ensure that devices and topology are effective and working to protect the company infrastructure.
    • Review and describe the need for intrusion detection systems (IDS) and intrusion prevention systems (IPS).
    • Discuss how they can effectively be used in a network operations setting.
    • Ensure that there is an appropriate use of the IDS and IPS in the network diagram. 
  • Section 5 should be 4–5 pages long (2–3 pages of network topology, 1–2 pages of IPS and IDS).
  • Name the document “CS651_FirstnameLastname_Final.doc.”
  • As a final deliverable to the management team, create a Power Point presentation that summarizes the solutions outlined in the Key Assignment template. In addition, describe why the proposed solution is the correct method or mechanism to be implemented. Remember that the presentation is for the management team and should contain the appropriate level of detail.

WEB DEVELOP PROJECT

 

Objectives
• Review of the HTML and CSS skills learned until this point.

Basic Requirements
• Properly use and indent all tags.
• Set up page with , and tags.
• The page should contain your name in the

.
• You may work in pairs, but each person must turn in their own work.

Project Description
• Using the skills you have gained thus far, attempt to recreate the page below.
• All required images are included in the project folder.
Final Result (text may vary):

Submitting your project
1. Combine all work files into a zip folder (include all HTML, CSS, font, and image files).
Keep the file structure the same as it was when you were working on the
assignment.
2. Submit the zip folder via desire2learn in the appropriate Assignment folder in order
to receive credit. While you may also submit screenshots, you are required to
submit the actual code files, not just screenshots of the code. Screenshots of code
will receive NO CREDIT.

Grading
• Total possible points: 100
A ▪ All content is present.
▪ No broken images.
▪ The page looks nearly identical to the screenshot.
▪ Fonts are similar, although not necessarily 100% the same fonts.
▪ Proper use of floating, positioning, colors, transparency, etc.
B ▪ All content is present.
▪ 0 -1 broken images.
▪ The page is fairly similar to the screenshot.
▪ Incorrect fonts.
▪ Mostly proper use of floating, positioning, colors, transparency, etc.
C ▪ Missing some content.
▪ Multiple broken images.
▪ Incorrect fonts.
▪ Improper use of floating and positioning. 

  Incorrect colors and transparency.
D ▪ Lacking most of the content.
▪ Multiple broken images.
▪ Little to no styling.
F ▪ Little to no code/content
▪ Screenshot of code

 

 

Problem 14- Legal

Question I – Paul is the sole incorporator of Hemp Co., a company that processes hemp into clothing.  Prior to incorporation, Paul enters into a contract on Hemp Co.’s behalf with a local farmer for the purchase of the crop.  After formation of the corporation, the board does not ratify the contract because Paul bought the crop at 3 times the market price.  Who is liable to the farmer?

Question II – Tina Technology is looking to raise $85,000 worth of capital, and she is looking to raise that money through the internet and still fall under an SEC exemption.  How should Tina go about raising that money?  Due to the amount of capital she is looking to raise, will Tina be subject to any other special requirements?

Text-

Title: Business 

ISBN: 9780357447642 

Authors: Marianne M. Jennings 

Publication Date: 2021-01-01 

Edition: 12th Edition