This SDE-1 Assignment require the development of a robust log ingestor system and a user-friendly query interface. The goal is to efficiently handle large volumes of log data and provide a simple yet powerful interface for querying based on various parameters. The log ingestor should scale seamlessly, mitigating potential bottlenecks, and logs should be ingested via an HTTP server on port 3000. The query interface should support full-text search and offer filters for different log attributes. Bonus features include date range search, regular expression support, combining multiple filters, real-time capabilities, and role-based access.
Client: React.Js, Redux, Material UI
Server: Node.Js, Express.Js ,Mongodb
- Implement a robust mechanism to ingest logs in the specified JSON format.
- Ensure the system's scalability to handle high volumes of logs efficiently.
- Logs should be ingested via an HTTP server running on the default port '3000'
- Enhance the log ingestor to support searching within specific date ranges, providing more flexibility for querying.
- Implement real-time log ingestion capabilities, ensuring that logs are processed and made available for querying in real-time.
- Extend the log ingestor to support search queries using regular expressions for more advanced log filtering.
- Allow users to combine multiple filters in a single query, enabling more complex and specific log searches.
- Implement role-based access control to the log ingestor, restricting access based on user roles for enhanced security.
Total File Examined For Search Query On Level : "Err" is 47 , Here it is applying Linear Search
Total File Examined For Search Query On Level : “Err” is 14 , Here it is applying Binary Search
Video Demo Here
https://drive.google.com/file/d/1yEWF9ce-nk-nmuk6jfYmPpPu9XFLyz4_/view?usp=sharing
- Node Js must be installed before running project
- MongoDB compass is helpful for view database collection
Clone the project
git clone https://github.com/AnuragRoshan/LogIngestor.git
Move into Project folder
cd november-2023-hiring-AnuragRoshan
Move into server and install node dependencies for server side
cd server
npm i
Install react dependencies in client folder
cd ..
cd client
npm i
Run node backend in other shell
npm start
Run react frontend in third shell
cd ..
cd client
npm start
- MongoDB Official Documentation : https://www.mongodb.com/docs/
- Indexing On Database : https://youtu.be/yo6ZXsgsyBA?si=Ft5swjQ9MgU-TkPi
- Front End UI : https://devsnap.me/css-toggle-switches
If you have any feedback, please reach out to us at anuragraushan373@gmail.com
The "Toggle Role" page enables administrators to effortlessly switch between roles, granting access to specialized query filters. This streamlined interface empowers administrators with exclusive capabilities, ensuring users maintain restricted access without compromising security.