Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit a1f5b66

Browse files
Update README.md
1 parent eaf0a05 commit a1f5b66

File tree

1 file changed

+39
-1
lines changed

1 file changed

+39
-1
lines changed

‎README.md

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,39 @@
1-
### Readme will be updated by 30/03/2024 with proper documentation as mentioned
1+
# Event Log Ingest And Query Backend System.
2+
Developed a RESTful service that manages and queries event data based on a user's geographical location and a specified date. This service will ingest data from a provided CSV dataset and then offer an API to find events for user
3+
4+
## Tech Stack choice
5+
Language/Environment - JavaScript, Node.JS
6+
Framework - Express.JS
7+
Database - MongoDB <br>
8+
<br>
9+
I wanted to take a moment to explain why I chose JavaScript, Express.js, and MongoDB. <br>
10+
JavaScript was chosen for its versatility, and asynchronous nature, making it well-suited for rapid development and handling concurrent operations.<br>
11+
Express.js, a minimalist web framework for Node.js, was selected for its simplicity, flexibility, and robust middleware support. <br>
12+
MongoDB was opted for as our database solution due to its flexibility, scalability, and ease of use. As a NoSQL database, it accommodates unstructured data, making it suitable for applications with evolving data schemas. <br>
13+
14+
### Design Pattern And Performance Enhancement
15+
MVC(model-view-controller) design pattern is followed for this backend system. <br>
16+
For optimize query performance mongoDB database indexing has been done on 'date' attribute with sorting order set to ascending as in this assignment queries are related to 'date' only. <br>
17+
This '/event/find' API endpoint reuire data from given external weather and distance APIs. Hence concurrent programming has been implementesd to concurrently fetch responces from external APIs for all the events occurring within the next 14 days from the specified date. Here javascript Promises are used for concurrency with robust error handling. (see controller.js file) <br>
18+
All the API endpoints has robust error/exception handling.
19+
20+
## Getting Started
21+
#### To run this backend system locally, your system needs have node and npm installed.
22+
### 1. Clone the repository
23+
```
24+
git clone https://github.com/sdcode001/Event-log-ingest-and-query-system-with-enhanced-performance-using-concurrency-indexing.git
25+
```
26+
### 2. Change directory
27+
```
28+
cd Event-log-ingest-and-query-system-with-enhanced-performance-using-concurrency-indexing
29+
```
30+
### 3. Install packages
31+
```
32+
npm install
33+
```
34+
### 4. Start server
35+
```
36+
npm run start
37+
```
38+
#### Now server will run on localhost:3000. Make sure your system is not running other application on port 3000
39+

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /