Sam's Mini Firebase is a lightweight, in-memory document database implementation in Java, inspired by Google Cloud Firestore. This project provides a simple, flexible, and interactive database system that mimics the core functionality of document-based NoSQL databases.
- 📂 Create and manage document collections
- 📝 Add, retrieve, update, and delete documents
- 🔍 Search and filter documents
- 💻 Interactive terminal-based interface
- 🚀 Easy to use and extend
- Java 11+
- Concurrent Collections for thread safety
- Scanner for terminal interactions
- Java Development Kit (JDK) 11 or higher
- Git
- Clone the repository:
git clone https://github.com/DroneCodes/sam_mini_firebase.git
cd sam-mini-firebase
- Compile the project:
javac *.java
- Run the application:
java Main
When you run the application, you'll see an interactive menu:
--- Sam's Mini Firebase Terminal Interface ---
1. Add Document
2. Retrieve Document
3. List Documents in Collection
4. Delete Document
5. Find Documents
6. Update Document
0. Exit
- Add a document to the "users" collection
- Retrieve documents
- Update existing documents
- Delete documents
- Search documents by field conditions
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the MIT License. See LICENSE
for more information.
Your Name - [email protected]
Project Link: https://github.com/DroneCodes/sam_mini_firebase
Disclaimer: This is a learning project and not intended for production use. For serious database needs, use established solutions like Firebase, MongoDB, or other production-ready databases.