{"id":23176800,"url":"https://github.com/ryanlarge13/notesserver","last_synced_at":"2025-10-03T20:51:26.178Z","repository":{"id":209535840,"uuid":"723957984","full_name":"RyanLarge13/NotesServer","owner":"RyanLarge13","description":"This is an Express server created for a cross platform desktop notes taking application. ","archived":false,"fork":false,"pushed_at":"2025-02-20T19:14:15.000Z","size":2378,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-09T17:18:54.937Z","etag":null,"topics":[],"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/RyanLarge13.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-11-27T05:26:29.000Z","updated_at":"2025-02-20T19:14:19.000Z","dependencies_parsed_at":"2024-02-11T15:40:39.764Z","dependency_job_id":"05e24e2c-2f37-48d0-9cbe-0a3f8fb54a1b","html_url":"https://github.com/RyanLarge13/NotesServer","commit_stats":null,"previous_names":["ryanlarge13/notesserver"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/RyanLarge13/NotesServer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RyanLarge13%2FNotesServer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RyanLarge13%2FNotesServer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RyanLarge13%2FNotesServer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RyanLarge13%2FNotesServer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RyanLarge13","download_url":"https://codeload.github.com/RyanLarge13/NotesServer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RyanLarge13%2FNotesServer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278227254,"owners_count":25951883,"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","status":"online","status_checked_at":"2025-10-03T02:00:06.070Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2024-12-18T06:19:37.584Z","updated_at":"2025-10-03T20:51:26.162Z","avatar_url":"https://github.com/RyanLarge13.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NotesServer\n\nNotes server is the full backend application written in Nodejs for the frontend desktop application [Notes](https://github.com/RyanLarge13/Notes) and the frontend mobile notes taking app [Notes Mobile](https://github.com/RyanLarge13/Notes-Native).\n\n## Libraries\n\nThis application takes advantage of\n\n1. [express: ^4.18.2](https://www.npmjs.com/package/express) for http protocol handling and routing\n2. [pg: ^8.11.3](https://www.npmjs.com/package/pg) for connecting to elephantsql postgres db\n3. [jsdom: ^23.0.1](https://www.npmjs.com/package/jsdom) for sanitizing html as it passes between server and client\n4. [jsonwebtoken: ^9.0.2](https://www.npmjs.com/package/jsonwebtoken) for authentication and password less logins\n5. [cors: ^2.8.5](https://www.npmjs.com/package/cors) for validating client origins\n6. [body-parser: ^1.20.2](https://www.npmjs.com/package/body-parser) for request body parsing\n7. [bcryptjs: ^2.4.3](https://www.npmjs.com/package/bcryptjs) for password hashing\n8. And [nodemon: ^3.0.1](https://www.npmjs.com/package/nodemon) for development\n\n## Code Structure\n\n### Multi Paradigm\n\nThe server is designed with a mixture of both functional and object oriented styled code.\n\nRepetitive tasks with related functionality live within their own classes and build an easy to use and easy to understand abstraction to allow you to worry more about the logical steps of a process then validating or exception handling for example.\n\n### Modularized\n\nThe server, routes, and controllers are all seperated into their own directories for orginization. Raw SQL was used and also modularize into their own folders.\nEg. SQL queries and SQL migrations\n\n### Functional\n\nThis application strays away from updating global state. Pure functions and pure methods are used to encapsulate and return new data\n\n## Run The Code\n\n1. Clone the repo\n\n```\ngit clone git@github.com:Ryanlarge13/Notes-Server.git\n```\n\n2. Install deps\n\n```\ncd Notes-Server \u0026\u0026 npm install\n```\n\n3. You will need to update the dbConnection.js file to accommodate your own DB, just replace the values with your own\n\n```\nimport pkg from 'pg';\nconst { Pool} = pkg;\n\nconst pool = new Pool({\n  user: \"db_username\",\n  host: \"db_host\",\n  database: \"\",\n  password: \"db_password\",\n  port: 5432,\n});\n\nexport default pool;\n```\n\n4. Run the server and test it with postman, customize it, change it, have fun.\n\n```\nnpm run dev\n```\n\n## API docs\n\nRun through the api documentation here to get an idea of how to use this server and what data looks like being returned from the api\n[API Docs](./API_DOCS.md)\n\n## Contributing\n\nIf you are interested in contributing your version of this server feel free to open a pull request. Checkout the PR template here [PR Template](./PULL_REQUEST_TEMPLATE.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fryanlarge13%2Fnotesserver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fryanlarge13%2Fnotesserver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fryanlarge13%2Fnotesserver/lists"}