With the use of a stack abstract data type (ADT) to order a sequence of strings of letters in alphabetical order.

The strings of letters are read one by one from the keyboard until the user enters $. Every new
string is saved in the stack. Then, the values stored in the stack are displayed in alphabetical order.
Multiple files and a project file would be used to solve the problem.

To solve this problem using a stack ADT, you would need to follow these steps:

1. Define the Stack ADT: Create a class or structure to represent the stack. It should have methods for operations like push, pop, isEmpty, and peek.

2. Read Strings from Keyboard: Create a loop to read strings from the keyboard until the user enters "$". Each string should be pushed onto the stack.

3. Display Strings in Alphabetical Order: After the loop finishes, create another loop to pop the strings from the stack and display them. To ensure alphabetical order, you can use a sorting algorithm like bubble sort or selection sort.

4. Multiple Files and Project Organization: You can organize your code into multiple files to separate the implementation of the stack ADT and the main program logic. For example, you can have one file for the stack implementation (e.g., stack.py) and another file for the main program (e.g., main.py). You can import the stack module into the main program file.

Here's a high-level example of how the code could be structured:

**stack.py:**
```python
class Stack:
# Implement the stack methods: push, pop, isEmpty, peek, etc.
```

**main.py:**
```python
from stack import Stack

def main():
stack = Stack()

# Read strings from keyboard and push onto the stack
while True:
string = input("Enter a string (or $ to exit): ")
if string == "$":
break
stack.push(string)

# Display strings in alphabetical order
sort_stack(stack)

def sort_stack(stack):
sorted_stack = Stack()

while not stack.isEmpty():
# Pop the top two strings from the stack
string1 = stack.pop()
string2 = stack.pop()

# Compare the two strings and push them to the sorted stack accordingly
if string1 < string2:
sorted_stack.push(string2)
stack.push(string1)
else:
sorted_stack.push(string1)
stack.push(string2)

# Pop strings from the sorted stack and display them
while not sorted_stack.isEmpty():
print(sorted_stack.pop())

if __name__ == "__main__":
main()
```

Note: This is a simplified example, and you might need to modify it based on your specific requirements and programming language. Additionally, consider error handling, additional stack methods, and performance optimization depending on the size of the input.