Last Compiled: Successfully
Executable Size: ~770KB
All Components: Fully Integrated
# 1. Open terminal in project directory
cd C:\Users\Abhijeet Nardele\Desktop\oopscp
# 2. Run the program
.\oopscp.exe
# 3. Inside OOPSCP, try:
init
stats
hash README.md
exitSteps:
1. Run: .\oopscp.exe
2. Command: init
3. Check: .oopscp directory created
4. Expected: Green "[OK] Repository initialized successfully!"
What it tests:
- Directory creation
- File system operations
- Repository structure setup
Steps:
1. Command: hash README.md
2. Expected: 64-character SHA-256 hash
3. Run again: Should produce identical hash
What it tests:
- SHA-256 implementation (from scratch!)
- File reading
- Cryptographic correctness
Steps:
1. After init, command: status
2. Modify a file (e.g., edit README.md)
3. Command: status again
4. Expected: Shows modified files
What it tests:
- FileScanner directory traversal
- Hash comparison
- Change detection
Steps:
1. Command: snapshot "My first snapshot"
2. Expected: Files scanned, hashes calculated
3. Command: list
4. Expected: Snapshot appears with ID
What it tests:
- Binary file serialization
- Snapshot storage
- Metadata tracking
Steps:
1. Create two text files:
echo "Hello World" > file1.txt
echo "Hello Planet" > file2.txt
2. Command: compare file1.txt file2.txt
3. Expected: Line-by-line diff with colors
What it tests:
- LCS (Longest Common Subsequence) algorithm
- Text file parsing
- Diff generation
Steps:
1. Create duplicate files:
copy README.md README_copy.md
2. Command: deduplicate
3. Expected: Finds duplicates, shows wasted space
What it tests:
- Hash-based deduplication
- Hash map implementation
- Storage analysis
Steps:
1. Command: snapshot "Before integrity"
2. Command: integrity-check
3. Expected: All files verified or corruption detected
What it tests:
- File integrity verification
- Hash comparison
- Corruption detection
Steps:
1. Command: stats
2. Expected:
- File count
- Total size
- Duplicate analysis
- Snapshot information
What it tests:
- FileScanner
- Deduplicator
- Repository metadata
- Real-time analysis
Steps:
1. Create .oopsignore file with patterns
2. Command: stats
3. Verify: Ignored files not counted
Steps:
1. Create snapshot
2. Command: export <snapshot-id> backup.snapshot
3. Verify: File created with binary data
Steps:
1. Create snapshot: snapshot "v1"
2. Modify files
3. Create snapshot: snapshot "v2"
4. Command: list
5. Expected: Both snapshots listed
- 174 lines of cryptographic code
- Bit manipulation operations
- NIST standard compliance
- Tested and verified
- Snapshots stored in binary format
- Efficient storage
- Fast loading/saving
- Magic number validation ("OOPSCP")
- Dynamic programming implementation
- O(m*n) time complexity
- Real line-by-line comparison
- Colorized output
- O(n) duplicate detection
- Memory-efficient hash maps
- Storage optimization analysis
- Real wasted space calculation
- Hash verification
- Corruption detection
- Snapshot validation
- Real-time checking
- Windows API integration
- Recursive scanning
- Pattern matching (.oopsignore)
- Metadata extraction
"I built OOPSCP, an enterprise-level file version control system in C++. It features a complete SHA-256 implementation from scratch, binary file serialization, LCS algorithm for diff generation, and hash-based deduplication. All components are fully functional and use real file operations."
- Run the program - Show clean UI
- Demonstrate SHA-256 -
hashcommand on a file - Show deduplication - Create duplicates, run analysis
- Compare files - Show LCS algorithm in action
- Create snapshot - Demonstrate binary serialization
| Feature | Implementation Detail |
|---|---|
| SHA-256 | 174 lines, implemented from NIST spec |
| Serialization | Binary format with magic numbers |
| LCS Algorithm | Dynamic programming, O(m*n) |
| Deduplication | Hash maps, O(n) complexity |
| File I/O | Windows API, recursive traversal |
| OOP | 11 classes, all 4 principles demonstrated |
Total Lines of Code: ~3,500 lines
Source Files: 10 .cpp files
Header Files: 11 .h files
Classes: 11 OOP classes
Algorithms: SHA-256, LCS, Hash maps
File Operations: 20+ different types
Compilation: Clean (0 errors, 0 warnings)
Executable Size: ~770KB
Solution: Run in Windows Terminal or PowerShell (not CMD)
Solution: Run init command first
Solution: Normal - SHA-256 calculation is intensive
- ✅ SHA-256 from scratch - Shows deep algorithm knowledge
- ✅ Binary serialization - Real file format design
- ✅ LCS algorithm - Classic CS problem
- ✅ Windows API usage - System programming
- ✅ Clean architecture - Professional OOP design
- ✅ Real file handling - Not just theory
- ✅ Working product - Can demo immediately
# Start
.\oopscp.exe
# 1. Show initialization (10 seconds)
init
# Point out: Creates .oopscp directory structure
# 2. Show SHA-256 (15 seconds)
hash README.md
# Point out: Real SHA-256, implemented from scratch
# 3. Show file analysis (30 seconds)
stats
# Point out: Real-time directory scan, hash calculation
# 4. Create duplicate (30 seconds)
# (In another terminal: copy README.md test.md)
deduplicate
# Point out: Hash-based detection, O(n) algorithm
# 5. File comparison (30 seconds)
# (Create two similar files first)
compare file1.txt file2.txt
# Point out: LCS algorithm, dynamic programming
# 6. Create snapshot (45 seconds)
snapshot "Demo snapshot"
# Point out: Binary serialization, SHA-256 hashing
# 7. Show snapshots (15 seconds)
list
# Point out: All snapshots with metadata
# Done!
exitTotal time: 3-5 minutes for full demo
- Compiles without errors
- All source files implemented
- SHA-256 working correctly
- File I/O operations functional
- Binary serialization working
- LCS algorithm implemented
- Deduplication functional
- Integrity checking working
- Repository operations complete
- UI/UX polished
- Error handling in place
- .oopsignore support
- Documentation complete
This project demonstrates:
- ✅ Deep algorithm knowledge (SHA-256, LCS)
- ✅ Real file handling (binary & text)
- ✅ System programming (Windows API)
- ✅ OOP architecture (11 classes)
- ✅ Data structures (hash maps, vectors)
- ✅ Software engineering (clean code, error handling)
Confidence Level: 95/100 for interviews!
Good luck with your placements! 🎯