{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":697200968,"defaultBranch":"master","name":"alx-backend-javascript","ownerLogin":"Kevin-Kinyua","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2023-09-27T08:59:03.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/21689726?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1695805454.0","currentOid":""},"activityList":{"items":[{"before":"95faad5e7056d025f750dbd2f1c803434931653e","after":"509e8c668e6a178d34a5d84aea7e6fe3cf797742","ref":"refs/heads/master","pushedAt":"2023-11-23T12:18:12.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Kevin-Kinyua","name":"Kevin Kinyua","path":"/Kevin-Kinyua","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/21689726?s=80&v=4"},"commit":{"message":"Task 10: Deep equality & Post integration testing\n\nIn a folder 10-api, reusing the previous project in 9-api (package.json, api.js and api.test.js)\n\nModify the file api.js:\n\nAdd an endpoint GET /available_payments that returns an object with the following structure:\n{\n payment_methods: {\n credit_cards: true,\n paypal: false\n }\n}\nAdd an endpoint POST /login that returns the message Welcome :username where :username is the value of the body variable userName.\nModify the file api.test.js:\n\nAdd a test suite for the /login endpoint\nAdd a test suite for the /available_payments endpoint","shortMessageHtmlLink":"Task 10: Deep equality & Post integration testing"}},{"before":"ca53bee830fa385b1c08b8f2a78d1483f5d38f90","after":"95faad5e7056d025f750dbd2f1c803434931653e","ref":"refs/heads/master","pushedAt":"2023-11-23T11:59:55.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Kevin-Kinyua","name":"Kevin Kinyua","path":"/Kevin-Kinyua","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/21689726?s=80&v=4"},"commit":{"message":"Updates","shortMessageHtmlLink":"Updates"}},{"before":"aa67e7b5f95a575a0a4cc399d454dc491e982d46","after":"ca53bee830fa385b1c08b8f2a78d1483f5d38f90","ref":"refs/heads/master","pushedAt":"2023-11-23T11:47:57.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Kevin-Kinyua","name":"Kevin Kinyua","path":"/Kevin-Kinyua","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/21689726?s=80&v=4"},"commit":{"message":"Task 8: Basic Integration testing\n\nIn a folder 8-api located at the root of the project directory, copy this package.json over.\n\n...\n\nCreate a new file api.js:\n\nBy using express, create an instance of express called app\nListen to port 7865 and log API available on localhost port 7865 to the browser console when the express server is started\nFor the route GET /, return the message Welcome to the payment system\nCreate a new file api.test.js:\n\nCreate one suite for the index page:\nCorrect status code?\nCorrect result?\nOther?","shortMessageHtmlLink":"Task 8: Basic Integration testing"}},{"before":"f63bb81a87e2c278a21435db2ebf930f0a840163","after":"aa67e7b5f95a575a0a4cc399d454dc491e982d46","ref":"refs/heads/master","pushedAt":"2023-11-23T11:38:38.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Kevin-Kinyua","name":"Kevin Kinyua","path":"/Kevin-Kinyua","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/21689726?s=80&v=4"},"commit":{"message":"Task 7: Skip\n\nWhen you have a long list of tests, and you can’t figure out why a test is breaking, avoid commenting out a test, or removing it. Skip it instead, and file a ticket to come back to it as soon as possible\n\nYou will be using this file, conveniently named 7-skip.test.js\n\nUsing the file 7-skip.test.js:\n\nMake the test suite pass without fixing or removing the failing test\nit description must stay the same\nTips:\n\nSkipping is also very helpful when you only want to execute the test in a particular case (specific environment, or when an API is not behaving correctly)\nRequirements:\n\nYou should be able to run the test suite using npm test 7-skip.test.js\nEvery test should pass without any warning","shortMessageHtmlLink":"Task 7: Skip"}},{"before":"2269399ee2c78dfe702917759c8b148f1787b392","after":"f63bb81a87e2c278a21435db2ebf930f0a840163","ref":"refs/heads/master","pushedAt":"2023-11-23T11:35:03.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Kevin-Kinyua","name":"Kevin Kinyua","path":"/Kevin-Kinyua","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/21689726?s=80&v=4"},"commit":{"message":"Task 6: Async tests with done\n\nLook into how to support async testing, for example when waiting for the answer of an API or from a Promise\n\nCreate a new file 6-payment_token.js:\n\nCreate a new function named getPaymentTokenFromAPI\nThe function will take an argument called success (boolean)\nWhen success is true, it should return a resolved promise with the object {data: 'Successful response from the API' }\nOtherwise, the function is doing nothing.\nCreate a new file 6-payment_token.test.js and write a test suite named getPaymentTokenFromAPI\n\nHow to test the result of getPaymentTokenFromAPI(true)?\nTips:\n\nYou should be extremely careful when working with async testing. Without calling done properly, your test could be always passing even if what you are actually testing is never executed\nRequirements:\n\nYou should be able to run the test suite using npm test 6-payment_token.test.js\nEvery test should pass without any warning\nYou should use the done callback to execute this test","shortMessageHtmlLink":"Task 6: Async tests with done"}},{"before":"187d1f54e02e80d443f7ed6fb414948496188239","after":"2269399ee2c78dfe702917759c8b148f1787b392","ref":"refs/heads/master","pushedAt":"2023-11-23T11:30:30.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Kevin-Kinyua","name":"Kevin Kinyua","path":"/Kevin-Kinyua","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/21689726?s=80&v=4"},"commit":{"message":"Task 5: Hooks\n\nHooks are useful functions that can be called before execute one or all tests in a suite\n\nCopy the code from 4-payment.js into a new file 5-payment.js: (same content/same behavior)\n\nCreate a new file 5-payment.test.js:\n\nInside the same describe, create 2 tests:\nThe first test will call sendPaymentRequestToAPI with 100, and 20:\nVerify that the console is logging the string The total is: 120\nVerify that the console is only called once\nThe second test will call sendPaymentRequestToAPI with 10, and 10:\nVerify that the console is logging the string The total is: 20\nVerify that the console is only called once\nRequirements:\n\nYou should be able to run the test suite using npm test 5-payment.test.js\nEvery test should pass without any warning\nYou should use only one spy to complete this exercise\nYou should use a beforeEach and a afterEach hooks to complete this exercise","shortMessageHtmlLink":"Task 5: Hooks"}},{"before":"db9e7344f086e8b4e983a64bc2757df013601d72","after":"187d1f54e02e80d443f7ed6fb414948496188239","ref":"refs/heads/master","pushedAt":"2023-11-23T10:39:26.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Kevin-Kinyua","name":"Kevin Kinyua","path":"/Kevin-Kinyua","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/21689726?s=80&v=4"},"commit":{"message":"Task 4: Stubs\n\nStubs are similar to spies. Except that you can provide a different implementation of the function you are wrapping. Sinon can be used as well for stubs.\n\nCreate a new file 4-payment.js, and copy the code from 3-payment.js (same content, same behavior)\n\nCreate a new file 4-payment.test.js, and copy the code from 3-payment.test.js\n\nImagine that calling the function Utils.calculateNumber is actually calling an API or a very expensive method. You don’t necessarily want to do that on every test run\nStub the function Utils.calculateNumber to always return the same number 10\nVerify that the stub is being called with type = SUM, a = 100, and b = 20\nAdd a spy to verify that console.log is logging the correct message The total is: 10\nRequirements:\n\nYou should be able to run the test suite using npm test 4-payment.test.js\nEvery test should pass without any warning\nYou should use a stub to complete this exercise\nDo not forget to restore the spy and the stub\nTips:\n\nUsing stubs allows you to greatly speed up your test. When executing thousands of tests, saving a few seconds is important\nUsing stubs allows you to control specific edge case (e.g a function throwing an error or returning a specific result like a number or a timestamp)","shortMessageHtmlLink":"Task 4: Stubs"}},{"before":"81c872088a1680418a5ce6c3f77afbd5ab21f226","after":"db9e7344f086e8b4e983a64bc2757df013601d72","ref":"refs/heads/master","pushedAt":"2023-11-23T10:34:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Kevin-Kinyua","name":"Kevin Kinyua","path":"/Kevin-Kinyua","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/21689726?s=80&v=4"},"commit":{"message":"Task 3: Spies\n\nSpies are a useful wrapper that will execute the wrapped function, and log useful information (e.g. was it called, with what arguments). Sinon is a library allowing you to create spies.\n\nLet’s install Sinon with npm:\n\nCreate a new file named utils.js\nCreate a new module named Utils\nCreate a property named calculateNumber and paste your previous code in the function\nExport the Utils module\nCreate a new file named 3-payment.js:\n\nCreate a new function named sendPaymentRequestToApi. The function takes two argument totalAmount, and totalShipping\nThe function calls the Utils.calculateNumber function with type SUM, totalAmount as a, totalShipping as b and display in the console the message The total is: \nCreate a new file named 3-payment.test.js and add a new suite named sendPaymentRequestToApi:\n\nBy using sinon.spy, make sure the math used for sendPaymentRequestToApi(100, 20) is the same as Utils.calculateNumber('SUM', 100, 20) (validate the usage of the Utils function)\nRequirements:\n\nYou should be able to run the test suite using npm test 3-payment.test.js\nEvery test should pass without any warning\nYou should use a spy to complete this exercise\nTips:\n\nRemember to always restore a spy after using it in a test, it will prevent you from having weird behaviors\nSpies are really useful and allow you to focus only on what your code is doing and not the downstream APIs or functions\nRemember that integration test is different from unit test. Your unit test should test your code, not the code of a different function","shortMessageHtmlLink":"Task 3: Spies"}},{"before":"3caed87794dd82532376128e5d57630535c45ce6","after":"81c872088a1680418a5ce6c3f77afbd5ab21f226","ref":"refs/heads/master","pushedAt":"2023-11-23T10:30:22.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Kevin-Kinyua","name":"Kevin Kinyua","path":"/Kevin-Kinyua","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/21689726?s=80&v=4"},"commit":{"message":"Update chai test","shortMessageHtmlLink":"Update chai test"}},{"before":"62ff9ac823757aafa0946f86d2d0e6a45c558e38","after":"3caed87794dd82532376128e5d57630535c45ce6","ref":"refs/heads/master","pushedAt":"2023-11-23T10:25:42.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Kevin-Kinyua","name":"Kevin Kinyua","path":"/Kevin-Kinyua","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/21689726?s=80&v=4"},"commit":{"message":"Update calcul chai","shortMessageHtmlLink":"Update calcul chai"}},{"before":"f0e469105b76700657340b5510b4df0f1850c54a","after":"62ff9ac823757aafa0946f86d2d0e6a45c558e38","ref":"refs/heads/master","pushedAt":"2023-11-23T10:12:39.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Kevin-Kinyua","name":"Kevin Kinyua","path":"/Kevin-Kinyua","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/21689726?s=80&v=4"},"commit":{"message":"Task 2: Basic test using Chai assertion library\n\nWhile using Node assert library is completely valid, a lot of developers prefer to have a behavior driven development style. This type being easier to read and therefore to maintain.\n\nLet’s install Chai with npm:\n\nCopy the file 1-calcul.js in a new file 2-calcul_chai.js (same content, same behavior)\nCopy the file 1-calcul.test.js in a new file 2-calcul_chai.test.js\nRewrite the test suite, using expect from Chai\nTips:\n\nRemember that test coverage is always difficult to maintain. Using an easier style for your tests will help you\nThe easier your tests are to read and understand, the more other engineers will be able to fix them when they are modifying your code\nRequirements:\n\nYou should be able to run the test suite using npm test 2-calcul_chai.test.js\nEvery test should pass without any warning","shortMessageHtmlLink":"Task 2: Basic test using Chai assertion library"}},{"before":"c8d55182a2728a25ca4a19a9843d103c9f068322","after":"f0e469105b76700657340b5510b4df0f1850c54a","ref":"refs/heads/master","pushedAt":"2023-11-23T10:02:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Kevin-Kinyua","name":"Kevin Kinyua","path":"/Kevin-Kinyua","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/21689726?s=80&v=4"},"commit":{"message":"Update 1-calcul.js","shortMessageHtmlLink":"Update 1-calcul.js"}},{"before":"e771b7f94291ae55d78c552f27680064b8fe99a3","after":"c8d55182a2728a25ca4a19a9843d103c9f068322","ref":"refs/heads/master","pushedAt":"2023-11-23T10:00:00.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Kevin-Kinyua","name":"Kevin Kinyua","path":"/Kevin-Kinyua","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/21689726?s=80&v=4"},"commit":{"message":"Update 0-calcul.test.js","shortMessageHtmlLink":"Update 0-calcul.test.js"}},{"before":"e00484c384b2a44f46c9ce7bb1ca2d0765632774","after":"e771b7f94291ae55d78c552f27680064b8fe99a3","ref":"refs/heads/master","pushedAt":"2023-11-23T09:46:57.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Kevin-Kinyua","name":"Kevin Kinyua","path":"/Kevin-Kinyua","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/21689726?s=80&v=4"},"commit":{"message":"Task 1: Combining descriptions\n\nCreate a new file named 1-calcul.js:\n\nUpgrade the function you created in the previous task (0-calcul.js)\nAdd a new argument named type at first argument of the function. type can be SUM, SUBTRACT, or DIVIDE (string)\nWhen type is SUM, round the two numbers, and add a and b\nWhen type is SUBTRACT, round the two numbers, and subtract b from a\nWhen type is DIVIDE, round the two numbers, and divide a with b - if the rounded value of b is equal to 0, return the string Error\nTest cases\n\nCreate a file 1-calcul.test.js that contains test cases of this function\nYou can assume a and b are always number\nUsage of describe will help you to organize your test cases\nTips:\n\nFor the sake of the example, this test suite is slightly extreme and probably not needed\nHowever, remember that your tests should not only verify what a function is supposed to do, but also the edge cases\nRequirements:\n\nYou have to use assert\nYou should be able to run the test suite using npm test 1-calcul.test.js\nEvery test should pass without any warning","shortMessageHtmlLink":"Task 1: Combining descriptions"}},{"before":"404a572ad7d2d3de45a1f4bb8105dd4ac9e90eab","after":"e00484c384b2a44f46c9ce7bb1ca2d0765632774","ref":"refs/heads/master","pushedAt":"2023-11-23T09:39:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Kevin-Kinyua","name":"Kevin Kinyua","path":"/Kevin-Kinyua","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/21689726?s=80&v=4"},"commit":{"message":"Task 0: Basic test with Mocha and Node assertion library\n\nInstall Mocha using npm:\n\nSet up a scripts in your package.json to quickly run Mocha using npm test\nYou have to use assert\nCreate a new file named 0-calcul.js:\n\nCreate a function named calculateNumber. It should accepts two arguments (number) a and b\nThe function should round a and b and return the sum of it\nTest cases\n\nCreate a file 0-calcul.test.js that contains test cases of this function\nYou can assume a and b are always number\nTests should be around the “rounded” part\nTips:\n\nFor the sake of the example, this test suite is slightly extreme and probably not needed\nHowever, remember that your tests should not only verify what a function is supposed to do, but also the edge cases\nRequirements:\n\nYou have to use assert\nYou should be able to run the test suite using npm test 0-calcul.test.js\nEvery test should pass without any warning","shortMessageHtmlLink":"Task 0: Basic test with Mocha and Node assertion library"}},{"before":"09b66ef77432471c0af41021131d808d89b5f1d2","after":"404a572ad7d2d3de45a1f4bb8105dd4ac9e90eab","ref":"refs/heads/master","pushedAt":"2023-11-21T12:52:56.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Kevin-Kinyua","name":"Kevin Kinyua","path":"/Kevin-Kinyua","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/21689726?s=80&v=4"},"commit":{"message":"Task 8: Organize a complex HTTP server using Express\n\nObviously writing every part of a server within a single file is not sustainable. Let’s create a full server in a directory named full_server.\n\nSince you have used ES6 and Babel in the past projects, let’s use babel-node to allow to use ES6 functions like import or export.\n\n8.1 Organize the structure of the server\nCreate 2 directories within:\ncontrollers\nroutes\nCreate a file full_server/utils.js, in the file create a function named readDatabase that accepts a file path as argument:\nIt should read the database asynchronously\nIt should return a promise\nWhen the file is not accessible, it should reject the promise with the error\nWhen the file can be read, it should return an object of arrays of the firstname of students per fields\n8.2 Write the App controller\nInside the file full_server/controllers/AppController.js:\n\nCreate a class named AppController. Add a static method named getHomepage\nThe method accepts request and response as argument. It returns a 200 status and the message Hello Holberton School!\n8.3 Write the Students controller\nInside the file full_server/controllers/StudentsController.js, create a class named StudentsController. Add two static methods:\n\nThe first one is getAllStudents:\n\nThe method accepts request and response as argument\nIt should return a status 200\nIt calls the function readDatabase from the utils file, and display in the page:\nFirst line: This is the list of our students\nAnd for each field (order by alphabetic order case insensitive), a line that displays the number of students in the field, and the list of first names (ordered by appearance in the database file) with the following format: Number of students in FIELD: 6. List: LIST_OF_FIRSTNAMES\nIf the database is not available, it should return a status 500 and the error message Cannot load the database\nThe second one is getAllStudentsByMajor:\n\nThe method accepts request and response as argument\nIt should return a status 200\nIt uses a parameter that the user can pass to the browser major. The major can only be CS or SWE. If the user is passing another parameter, the server should return a 500 and the error Major parameter must be CS or SWE\nIt calls the function readDatabase from the utils file, and display in the page the list of first names for the students (ordered by appearance in the database file) in the specified field List: LIST_OF_FIRSTNAMES_IN_THE_FIELD\nIf the database is not available, it should return a status 500 and the error message Cannot load the database\n8.4 Write the routes\nInside the file full_server/routes/index.js:\n\nLink the route / to the AppController\nLink the route /students and /students/:majorto the StudentsController\n8.5 Write the server reusing everything you created\nInside the file named full_server/server.js, create a small Express server:\n\nIt should use the routes defined in full_server/routes/index.js\nIt should use the port 1245\n8.6 Update package.json (if you are running it from outside the folder full_server)\nIf you are starting node from outside of the folder full_server, you will have to update the command dev by: nodemon --exec babel-node --presets babel-preset-env ./full_server/server.js ./database.csv\n\nWarning:\n\nDon’t forget to export your express app at the end of server.js (export default app;)\nThe database filename is passed as argument of the server.js BUT, for testing purpose, you should retrieve this filename at the execution (when getAllStudents or getAllStudentsByMajor are called for example)","shortMessageHtmlLink":"Task 8: Organize a complex HTTP server using Express"}},{"before":"4271cf8ea53777448413173074ddb81d966e459f","after":"09b66ef77432471c0af41021131d808d89b5f1d2","ref":"refs/heads/master","pushedAt":"2023-11-21T11:46:16.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Kevin-Kinyua","name":"Kevin Kinyua","path":"/Kevin-Kinyua","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/21689726?s=80&v=4"},"commit":{"message":"Update cvs","shortMessageHtmlLink":"Update cvs"}},{"before":"e585be92c0c7c5f81be1be0c3268eaa36583f01b","after":"4271cf8ea53777448413173074ddb81d966e459f","ref":"refs/heads/master","pushedAt":"2023-11-21T11:20:10.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Kevin-Kinyua","name":"Kevin Kinyua","path":"/Kevin-Kinyua","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/21689726?s=80&v=4"},"commit":{"message":"Task 7: Create a more complex HTTP server using Express\n\nIn a file named 7-http_express.js, recreate the small HTTP server using Express:\n\nIt should be assigned to the variable app and this one must be exported\nHTTP server should listen on port 1245\nIt should return plain text\nWhen the URL path is /, it should display Hello Holberton School! in the page body\nWhen the URL path is /students, it should display This is the list of our students followed by the same content as the file 3-read_file_async.js (with and without the database) - the name of the database must be passed as argument of the file\nCSV file can contain empty lines (at the end) - and they are not a valid student!","shortMessageHtmlLink":"Task 7: Create a more complex HTTP server using Express"}},{"before":"932bd89470427bf329e7a72505f4aae584a39579","after":"e585be92c0c7c5f81be1be0c3268eaa36583f01b","ref":"refs/heads/master","pushedAt":"2023-11-21T11:18:11.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Kevin-Kinyua","name":"Kevin Kinyua","path":"/Kevin-Kinyua","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/21689726?s=80&v=4"},"commit":{"message":"Task 6: Create a small HTTP server using Express\n\nInstall Express and in a file named 6-http_express.js, create a small HTTP server using Express module:\n\nIt should be assigned to the variable app and this one must be exported\nHTTP server should listen on port 1245\nDisplays Hello Holberton School! in the page body for the endpoint /","shortMessageHtmlLink":"Task 6: Create a small HTTP server using Express"}},{"before":"0d418e103ec0075f48734d8a28915935022f3fd3","after":"932bd89470427bf329e7a72505f4aae584a39579","ref":"refs/heads/master","pushedAt":"2023-11-21T11:07:50.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Kevin-Kinyua","name":"Kevin Kinyua","path":"/Kevin-Kinyua","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/21689726?s=80&v=4"},"commit":{"message":"Task 5: Create a more complex HTTP server using Node's HTTP module\n\nIn a file named 5-http.js, create a small HTTP server using the http module:\n\nIt should be assigned to the variable app and this one must be exported\nHTTP server should listen on port 1245\nIt should return plain text\nWhen the URL path is /, it should display Hello Holberton School! in the page body\nWhen the URL path is /students, it should display This is the list of our students followed by the same content as the file 3-read_file_async.js (with and without the database) - the name of the database must be passed as argument of the file\nCSV file can contain empty lines (at the end) - and they are not a valid student!","shortMessageHtmlLink":"Task 5: Create a more complex HTTP server using Node's HTTP module"}},{"before":"b36666578a8c748788df511358d0b6b95f1d8aa7","after":"0d418e103ec0075f48734d8a28915935022f3fd3","ref":"refs/heads/master","pushedAt":"2023-11-21T11:00:50.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Kevin-Kinyua","name":"Kevin Kinyua","path":"/Kevin-Kinyua","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/21689726?s=80&v=4"},"commit":{"message":"Task 4: Create a small HTTP server using Node's HTTP module\n\nIn a file named 4-http.js, create a small HTTP server using the http module:\n\nIt should be assigned to the variable app and this one must be exported\nHTTP server should listen on port 1245\nDisplays Hello Holberton School! in the page body for any endpoint as plain text","shortMessageHtmlLink":"Task 4: Create a small HTTP server using Node's HTTP module"}},{"before":"ceb69fc13aa646fed806e3f2091cef1429c9f107","after":"b36666578a8c748788df511358d0b6b95f1d8aa7","ref":"refs/heads/master","pushedAt":"2023-11-21T10:59:11.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Kevin-Kinyua","name":"Kevin Kinyua","path":"/Kevin-Kinyua","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/21689726?s=80&v=4"},"commit":{"message":"Update 1-stdin.js","shortMessageHtmlLink":"Update 1-stdin.js"}},{"before":"c7d59a54f093f97598435a5f7c2f6daa3ebe0e96","after":"ceb69fc13aa646fed806e3f2091cef1429c9f107","ref":"refs/heads/master","pushedAt":"2023-11-21T10:57:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Kevin-Kinyua","name":"Kevin Kinyua","path":"/Kevin-Kinyua","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/21689726?s=80&v=4"},"commit":{"message":"Update 1-stdin.js","shortMessageHtmlLink":"Update 1-stdin.js"}},{"before":"73269dc6e8bb4954dd33382e24051eb29a3a90dd","after":"c7d59a54f093f97598435a5f7c2f6daa3ebe0e96","ref":"refs/heads/master","pushedAt":"2023-11-21T10:51:11.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Kevin-Kinyua","name":"Kevin Kinyua","path":"/Kevin-Kinyua","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/21689726?s=80&v=4"},"commit":{"message":"Update 1-stdin.js","shortMessageHtmlLink":"Update 1-stdin.js"}},{"before":"126c815c59d8507f0639ac4633b2d4e6b1d1f943","after":"73269dc6e8bb4954dd33382e24051eb29a3a90dd","ref":"refs/heads/master","pushedAt":"2023-11-21T10:43:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Kevin-Kinyua","name":"Kevin Kinyua","path":"/Kevin-Kinyua","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/21689726?s=80&v=4"},"commit":{"message":"Update on requirement. Listening for exit","shortMessageHtmlLink":"Update on requirement. Listening for exit"}},{"before":"8d0574206880bc9f35984c37398272d6f1fd9a0e","after":"126c815c59d8507f0639ac4633b2d4e6b1d1f943","ref":"refs/heads/master","pushedAt":"2023-11-21T10:33:11.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Kevin-Kinyua","name":"Kevin Kinyua","path":"/Kevin-Kinyua","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/21689726?s=80&v=4"},"commit":{"message":"Update 1-stdin.js","shortMessageHtmlLink":"Update 1-stdin.js"}},{"before":"daea125c1d7da7fbcad9d7de08544612881721b1","after":"8d0574206880bc9f35984c37398272d6f1fd9a0e","ref":"refs/heads/master","pushedAt":"2023-11-21T10:27:08.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Kevin-Kinyua","name":"Kevin Kinyua","path":"/Kevin-Kinyua","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/21689726?s=80&v=4"},"commit":{"message":"Update 1-stdin.js","shortMessageHtmlLink":"Update 1-stdin.js"}},{"before":"f30d57b7070514f6248d657b5171b507336c7593","after":"daea125c1d7da7fbcad9d7de08544612881721b1","ref":"refs/heads/master","pushedAt":"2023-11-21T10:25:23.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Kevin-Kinyua","name":"Kevin Kinyua","path":"/Kevin-Kinyua","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/21689726?s=80&v=4"},"commit":{"message":"Update 1-stdin.js","shortMessageHtmlLink":"Update 1-stdin.js"}},{"before":"07911677ca572fd4653561043ed1af2189f04a1f","after":"f30d57b7070514f6248d657b5171b507336c7593","ref":"refs/heads/master","pushedAt":"2023-11-21T10:23:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Kevin-Kinyua","name":"Kevin Kinyua","path":"/Kevin-Kinyua","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/21689726?s=80&v=4"},"commit":{"message":"Update 1-stdin.js","shortMessageHtmlLink":"Update 1-stdin.js"}},{"before":"1cf4bde72496fededdc23b98c0fdc184073a9f46","after":"07911677ca572fd4653561043ed1af2189f04a1f","ref":"refs/heads/master","pushedAt":"2023-11-21T10:12:28.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"Kevin-Kinyua","name":"Kevin Kinyua","path":"/Kevin-Kinyua","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/21689726?s=80&v=4"},"commit":{"message":"Merge branch 'master' of https://github.com/Kevin-Kinyua/alx-backend-javascript\n\nProject correctio","shortMessageHtmlLink":"Merge branch 'master' of https://github.com/Kevin-Kinyua/alx-backend-…"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAADthHcFAA","startCursor":null,"endCursor":null}},"title":"Activity · Kevin-Kinyua/alx-backend-javascript"}