{"id":19651864,"url":"https://github.com/akshitgrover/hacken","last_synced_at":"2025-04-28T16:31:51.665Z","repository":{"id":57260130,"uuid":"109471328","full_name":"akshitgrover/hacken","owner":"akshitgrover","description":"Hacken is a node module to help people in hackathons, it has almost all the common features a person needs from database operations to sockets. If you are the one who struglles with MongoDb ObjectId, hacken makes it easier to work with then too.","archived":false,"fork":false,"pushed_at":"2018-02-09T13:04:38.000Z","size":16,"stargazers_count":14,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-24T10:24:59.937Z","etag":null,"topics":["docker","docker-image","hacken","jwt","jwt-functions","mongodb","mongodb-connection","mongoose","node","npm","object","objectid","socket","socket-functions"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/akshitgrover.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-11-04T06:04:33.000Z","updated_at":"2024-05-18T22:22:05.000Z","dependencies_parsed_at":"2022-08-25T02:41:49.443Z","dependency_job_id":null,"html_url":"https://github.com/akshitgrover/hacken","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akshitgrover%2Fhacken","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akshitgrover%2Fhacken/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akshitgrover%2Fhacken/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akshitgrover%2Fhacken/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/akshitgrover","download_url":"https://codeload.github.com/akshitgrover/hacken/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251346004,"owners_count":21574813,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","docker-image","hacken","jwt","jwt-functions","mongodb","mongodb-connection","mongoose","node","npm","object","objectid","socket","socket-functions"],"created_at":"2024-11-11T15:08:19.231Z","updated_at":"2025-04-28T16:31:51.127Z","avatar_url":"https://github.com/akshitgrover.png","language":"JavaScript","readme":"# What is hacken?\n\nHacken is a node module to help people in hackathons, it has almost all the common features a person needs from database operations to sockets. If you are the one who struglles with MongoDb ObjectId, hacken makes it easier to work with then too.\n\n## Contents\n* [Object Functions](#object)\n* [JWT Functions](#jwt)\n* [MongoDb Connection](#mongoconnect)\n* [User Functions](#usermodel)\n* [Create Docker Image](#docker)\n* [Socket Function](#sockets)\n\n--------------------------------\n\n\u003ca name=\"object\"\u003e\u003c/a\u003e\n\n## Object Functions\n\n### isObjValid\n\nTo Check if ObjectId is valid.\n```javascript\nvar hacken = require('hacken');\n\nif(hacken.isObjValid(objid)){\n\tconsole.log(\"Valid.\");\n}\nelse{\n\tconsole.log(\"Invalid.\");\n}\n```\n\n### toObjId\n\nTo convert a ObjectId string to underlying ObjectId.\n\n```javascript\nvar hacken = require('hacken');\n\ntry{\n\tvar objid = hacken.toObjId(req.body.id);\n}\ncatch(e){\n\tconsole.log(e.err);\n}\n```\n\n### arrObjMap\n\nTo get some specific values of properties from an array of objects.\n\n```javascript\nvar hacken = require('hacken');\n\nvar arr = [{ele1:\"one\",ele2:\"two\"},{ele1:\"1\",ele2:\"2\"}];\n\nvar prop = [\"ele1\"]; //specify properties which you want to get from an array.\n\nvar res = hacken.arrObjMap(arr,prop); //res = [\"one\",\"1\"];\n```\n-------------------\n\n\u003ca name=\"jwt\"\u003e\u003c/a\u003e\n\n## JWT Functions\n\n### issueToken\n\nTo Issue A Json Web Token.\n\n```javascript\nvar hacken = require('hacken');\n\nvar data = \"hello hacken\";\n\nvar secret = \"adsasdAFD5454asdasd5Basasdajsdb46555654d656464N15465as4d6546546a\";\n\nvar time = \"5d\"; //time can be given in 'd' for days without any suffix means seconds eg: 1100 for 1100 seconds.\n\ntry{\n\thacken.issueToken(data,secret,time).then((token)=\u003e{\n\t\tconsole.log(token);\n\t},(err)=\u003e{\n\t\tconsole.log(err);\n\t});\n}\ncatch(e){\n\tconsole.log(e);\n}\n```\n\n### verifyToken\n\nTo Verify a Json Web Token.\n\n```javascript\nvar hacken = require('hacken');\n\nvar token = req.params.token;\n\nvar secret = \"adsasdAFD5454asdasd5Basasdajsdb46555654d656464N15465as4d6546546a\"; //same as the one provided before.\n\ntry{\n\thacken.verifyToken(token,secret).then((result)=\u003e{\n\n\t\tvar msg = result.msg;\n\t\tvar decodedData = result.decoded\n\t\tconsole.log(msg);\n\t\tconsole.log(decodedData);\n\n\t}).catch((err)=\u003e{\n\t\tconsole.log(err);\n\t})\n}\ncatch(e){\n\tconsole.log(e);\n}\n```\n\n### decodeToken\n\nTo Decode the token.\n\n```javascript\nvar hacken = require('hacken');\n\ntry{\n\thacken.decodeToken(token).then((res)=\u003e{\n\t\tconsole.log(res);\n\t},(err)=\u003e{\n\t\tconsole.log(err);\n\t});\n}\ncatch(err){\n\tconsole.log(err);\n}\n```\n-------\n\n\u003ca name=\"mongoconnect\"\u003e\u003c/a\u003e\n\n## MongoDb Connection\n\n### mongoConnect\n\nTo Connect To MongoDb.\n\n```javascript\nvar hacken = require('hacken');\n\nvar url = \"mongodb://localhost:27017/db\"; //replace with your url \n\nhacken.mongoConnect(url).then((msg)=\u003e{\n\tconsole.log(msg);\n}).catch((err)=\u003e{\n\tconsole.log(err);\n})\n```\n\n--------\n\n\u003ca name=\"usermodel\"\u003e\u003c/a\u003e\n\n## User Functions\n\nFollowing Properties Are allowed in User Model:\n\n* username\n* password\n* phoneno\n* email\n* name\n* age\n* address\n\n```javascript\nvar object = {username:\"value\",password:\"value\",phoneno:\"value\",email:\"value\",name:\"value\",age:\"value\",address:\"value\"};\n\n//These objects can also take subset of the above mentioned properties.\n\n//Example:\n\nvar object = {username:\"value\",password:\"value\",phoneno:\"value\"};\n```\n\n### userCreate\n\nTo Create The User.\n\n```javascript\nvar hacken = require('hacken');\n\nhacken.userCreate(object).then((result)=\u003e{\n\tconsole.log(result);\n}).catch((err)=\u003e{\n\tconsole.log(err);\n});\n```\n\n### userRemove\n\nTo Remove the user.\n\n```javascript\nvar hacken = require('hacken');\n\nhacken.userRemove(req.body.username).then((result)=\u003e{\n\tconsole.log(result);\n}).catch((err)=\u003e{\n\tconsole.log(err);\n});\n```\n\n### userLogin\n\nTo Log user in.\n\n```javascript\nvar hacken = require('hacken');\n\nhacken.userLogin(username,password).then((result)=\u003e{\n\tconsole.log(result);\n}).catch((err)=\u003e{\n\tconsole.log(err);\n});\n```\n\n### userUpdate\n\nTo Update The User, Requires the same object with properties as used while creating the user.\n\n```javascript\nvar hacken = require('hacken');\n\n//Do Not Provide Password While updating as passwords are encrypted while storing.\n\nhacken.userUpdate(username,object).then((result)=\u003e{\n\tconsole.log(result);\n}).catch((err)=\u003e{\n\tconsole.log(err);\n});\n```\n\n### userFindByUsername\n\nTo Find the user by username.\n\n```javascript\nvar hacken = require('hacken');\n\nhacken.userFindByUsername(username).then((result)=\u003e{\n\tconsole.log(result);\n}).catch((err)=\u003e{\n\tconsole.log(err);\n});\n```\n\n### userFindByName\n\nTo Find users by name.\n\n```javascript\nvar hacken = require('hacken');\n\nhacken.userFindByName(name).then((result)=\u003e{\n\tconsole.log(result); //result is an array of users.\n}).catch((err)=\u003e{\n\tconsole.log(err);\n});\n```\n\n### userFindById\n\nTo Find user by ObjectId.\n\n```javascript\nvar hacken = require('hacken');\n\nhacken.userFindById(object).then((result)=\u003e{\n\tconsole.log(result);\n}).catch((err)=\u003e{\n\tconsole.log(err);\n})\n```\n\n### msgFind\n\nTo Fetch messages of a room. //For Now roomid = \"broadcast\".\n\n```javascript\nvar hacken = require('hacken');\n\nhacken.msgFind(\"broadcast\").then((result)=\u003e{\n\tconsole.log(result);\n}).catch((err)=\u003e{\n\tconsole.log(err);\n});\n```\n\n### roomFind\n\nTo Find all the chatrooms a user is associated to.\n\n```javascript\nvar hacken = require('hacken');\n\nvar username = req.body.username;\n\nvar page = req.body.pagenum; //to paginate the response as there can be many chat rooms for a user.\n\nvar length = req.body.numrooms; //to specify the number of chatrooms per page.\n\nhacken.roomFind(username,page,length).then((result)=\u003e{\n\tconsole.log(result); //Array of roomIds.\n}).catch((err)=\u003e{\n\tconsole.log(err);\n});\n```\n\n---------\n\n\u003ca name=\"docker\"\u003e\u003c/a\u003e\n\n## DockerImage\n\n### dockerImgCreate\n\nTo Create a dockerimage for your project, Dockerimage will be created in your root directory.\n\n```javascript\nvar hacken = require('hacken');\n\nvar port = 3000; //port on which your node server will run.\n\nvar servfile = app.js; //your start file.\n\nhacken.dockerImgCreate(port,servfile,(err)=\u003e{\n\tif(err){\n\t\tconsole.log(err);\n\t}\n\telse{\n\t\tconsole.log(\"Docker File Created.\");\n\t}\n})\n```\n\n-----------\n\n\u003ca name=\"sockets\"\u003e\u003c/a\u003e\n\n## Socket Functions\n\nFor Now hacken only supports group chat.\n\n### socketFunction\n\nTo Create socket server, call the below function in your start file.\n\n```javascript\nvar hacken = require('hacken');\n\nvar app = require('express')();\n\nvar http = require('http');\n\nvar server = http.Server(app);\n\nhacken.socketFunction(server);\n\nserver.listen(3000);\n```\n-----------------","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakshitgrover%2Fhacken","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fakshitgrover%2Fhacken","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakshitgrover%2Fhacken/lists"}