diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..e43b0f9
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+.DS_Store
diff --git a/echo_server.js b/echo_server.js
new file mode 100644
index 0000000..e423f43
--- /dev/null
+++ b/echo_server.js
@@ -0,0 +1,36 @@
+const http = require('http');
+
+const PORT = 3000;
+
+const server = http.createServer();
+
+
+const onRequest = (request, response) => {
+
+ request.on('error', (err) => {
+ console.error(err);
+ response.statusCode = 400;
+ response.end();
+ });
+ response.on('error', (err) => {
+ console.error(err);
+ });
+
+ const {
+ method, url
+ } = request;
+
+ if (method === 'POST' && url === '/echo') {
+ request.pipe(response);
+ } else {
+ response.statusCode = 404;
+ response.end();
+ }
+};
+
+
+server.on('request', onRequest);
+
+server.listen(PORT, () => {
+ console.log('Server is listening at port:', PORT);
+});
diff --git a/events/server.js b/events/server.js
new file mode 100644
index 0000000..02f8403
--- /dev/null
+++ b/events/server.js
@@ -0,0 +1,16 @@
+const http = require('http');
+
+const PORT = 8080;
+
+const server = http.createServer();
+const onRequest = (request, response) => {
+ response.writeHead(200, {
+ 'Content-Type': 'text/html'
+ });
+ response.end(`
Learning NodeJs Macha!!
`);
+};
+
+server.on('request', onRequest);
+server.listen(PORT, () => {
+ console.log(`Listening at ${PORT}`);
+});
diff --git a/modules/server.js b/modules/server.js
new file mode 100644
index 0000000..de04c87
--- /dev/null
+++ b/modules/server.js
@@ -0,0 +1,2 @@
+const shapes = require('./shapes');
+console.log(shapes);
diff --git a/modules/shapes/circle.js b/modules/shapes/circle.js
new file mode 100644
index 0000000..d25bcba
--- /dev/null
+++ b/modules/shapes/circle.js
@@ -0,0 +1,15 @@
+class Circle {
+ constructor(radius, point = {
+ x: 0,
+ y: 0
+ }) {
+ this.radius = radius;
+ }
+
+ get area() {
+ const rSquare = Math.pow(this.radius, 2);
+ return Math.PI * rSquare;
+ }
+}
+
+module.exports = Circle;
diff --git a/modules/shapes/index.js b/modules/shapes/index.js
new file mode 100644
index 0000000..43dd78b
--- /dev/null
+++ b/modules/shapes/index.js
@@ -0,0 +1,6 @@
+const Circle = require('./circle');
+const Rect = require('./rect');
+
+module.exports = {
+ Circle, Rect
+};
diff --git a/modules/shapes/package.json b/modules/shapes/package.json
new file mode 100644
index 0000000..c12bd3f
--- /dev/null
+++ b/modules/shapes/package.json
@@ -0,0 +1,4 @@
+{
+ "name": "shapes",
+ "main": "./index.js"
+}
diff --git a/modules/shapes/rect.js b/modules/shapes/rect.js
new file mode 100644
index 0000000..10353a0
--- /dev/null
+++ b/modules/shapes/rect.js
@@ -0,0 +1,12 @@
+class Rect {
+ constructor(a, b) {
+ this.a = a;
+ this.b = b;
+ }
+ get area() {
+ return a * b;
+ }
+}
+
+
+module.exports = Rect;