Date: July 2023
QEats is a popular food ordering app enabling users to browse and order dishes from nearby restaurants. This project involves implementing various backend features, resolving production issues, optimizing app performance, and adding advanced search capabilities.
During this project:
- Built core backend functionalities of QEats, a Spring Boot application.
- Developed several REST API endpoints for restaurant information and food ordering.
- Investigated and resolved production issues using Scientific Debugging methods.
- Enhanced app performance under high load and implemented an advanced search feature.
- Implemented the
GET /API/v1/restaurants
endpoint along with request handler and response methods. - Leveraged Mockito for developing MVCS layers independently.
- Retrieved a list of restaurants based on user location from MongoDB.
- Spring Boot, Spring Data, REST API, Jackson, Mockito, JUnit, MongoDB
- Used structured debugging techniques and log messages to identify and fix QEats app crashes.
- Applied breakpoints and assert statements to trace and resolve root causes.
- Scientific Debugging
- Conducted load testing with JMeter to identify performance bottlenecks.
- Analyzed DB queries impacting performance and utilized Redis caching to improve read speeds.
- Redis, JMeter
- Enabled user search for restaurants by attributes like name, cuisine, dish, and price using MongoDB queries.
- Enhanced concurrent search capabilities using multithreading.
- MongoDB querying, Multithreading
- Clone the Repository
git clone https://github.com/govindnathsng/QEats.git cd QEats Build the Project bash
./gradlew build
Run the Tests
bash
./gradlew test
⚙️ Technologies & Tools
Backend: Java, Spring Boot, MongoDB, Redis
Testing: JUnit, Mockito, JMeter
Debugging: Scientific Debugging, IDE Breakpoints, Log Analysis
Concurrency: Multithreading for optimized search performance
📈 Features
Restaurant Retrieval: Fetch restaurants based on user location.
Search Functionality: Search by name, cuisine, dish, and price.
Error Handling: Debug and resolve production issues.
Performance Optimization: Redis caching for faster data retrieval.
🤝 Contributing
Contributions are welcome! Fork the repository and submit a pull request to add new features or enhance the existing code. 📄 License
This project is licensed under the Apache License 2.0. 📞 Contact
For questions or feedback, feel free to reach out:
GitHub: govindnathsng
Email: [email protected]
Check out my Crio Portfolio for more projects like this!