-
Notifications
You must be signed in to change notification settings - Fork 0
/
ProgressTracker.txt
executable file
·87 lines (80 loc) · 3.67 KB
/
ProgressTracker.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
# UN*X File System - Relational Database
# Objectives
1. Create an Entity-Relationship Model of the problem space
2. Translate the ER model to a relational model, writing the necessary SQL
to create the tables, primarykeys, foreign keys, and any additional indexes
and/or other constraints
3. Populate your database with real-world sample data, as appropriate to your
problem space
4. Create the prototype client (in the programming language of your choice),
as required by the specific problem space
# Requirements
- [x] Create ER Model for the un*x file-system
- [x] Follow the notation from the lectures
- [x] Includes
- [x] entities
- [x] attributes
- [x] relationships
- [x] cardinality constraints
- [x] participation constraints
- [x] Indicate primary keys of entities by underlining them
- [x] Files properties
- [x] name
- [x] permission bits
- [x] size
- [x] type
- [x] File contents
- [x] Directories maintained in the standard un*x manner
- [x] with sub-directories as created
- [x] and, types per the standard un*x permissions
- [x] Hard Links
- [x] Symbolic Links
- [x] Create Relational Database <- From ER Model
- [x] Appropriately normalized
- [x] Use BLOB or TEXT types for file contents
- [x] SQL to create necessary = `fs_schema.sql`
- [x] Tables
- [x] Keys
- [x] Populate database with sample data = `fill_fs_rdb.py`
- [x] Starting Point? -> Write small utility to copy file system form un*x
box into your system
- [x] Create the following utilities
- [x] rdbsh shell program
- [x] Keeps track of current working directory
- [x] (cd) Change the current working directory
- [x] Maintain a PATH variable
- [x] Execute any executable program that is in your PATH
- [x] ls (May choose to implement as a shell command in your shell)
- [x] Accept -l argument
"-l (The lowercase letter ``ell''.) List in long format.
(See below.)
A total sum for all the file sizes is output on a line
before the long listing."
- [x] Accept plain usage
"For each operand that names a file of a type other than directory,
ls displays its name as well as any requested,
associated information. For each operand that names a file of
type directory, ls displays the names of files contained within
that directory, as well as any requested, associated information.
If no operands are given, the contents of the current directory are
displayed. If more than one operand is given, non-directory
operands are displayed first; directory and non-directory operands
are sorted separately and in lexicographical order."
- [x] find (May choose to implement as a shell command in your shell)
- [x] Accept the directory and (partial) name of the file being found
- [x] Output the "ls -l" results for all your matches
- [x] grep
- [x] Accept the (partial) name of the file
- [x] Seek the relevant pattern in the matching file(s)
- [x] Output the line number and line for the matching lines
# Submission
1. A PDF with the ER model diagram + description as necessary
2. SQL code
3. SQL code and Sample Data source
4. Whatever code is necessary, together with a README so that the evaluator
knows what is necessary for the purpose of executing your code
5. ~5 Minute Video Demo
- Here's what it does
- Here's what's cool
- Here's what was hard
- Should already be populated with data