{"id":17556763,"url":"https://github.com/hemitoncode/dailysat-node-api","last_synced_at":"2025-09-26T06:30:49.707Z","repository":{"id":255945614,"uuid":"853949578","full_name":"Hemit99123/dailysat-node-api","owner":"Hemit99123","description":"API built for DailySAT, never used though :( Has authentication too!!","archived":true,"fork":false,"pushed_at":"2024-12-24T17:45:57.000Z","size":205,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-17T00:33:25.218Z","etag":null,"topics":["backend","nodejs","sessions"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/Hemit99123.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":"2024-09-08T01:44:16.000Z","updated_at":"2024-12-24T17:46:06.000Z","dependencies_parsed_at":"2024-11-27T03:16:26.345Z","dependency_job_id":null,"html_url":"https://github.com/Hemit99123/dailysat-node-api","commit_stats":{"total_commits":50,"total_committers":2,"mean_commits":25.0,"dds":"0.19999999999999996","last_synced_commit":"adf154c54a2f02495b806dd406587c84e563040a"},"previous_names":["hemit99123/dailysat-api","dailysat/dailysat-node-api"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hemit99123%2Fdailysat-node-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hemit99123%2Fdailysat-node-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hemit99123%2Fdailysat-node-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hemit99123%2Fdailysat-node-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Hemit99123","download_url":"https://codeload.github.com/Hemit99123/dailysat-node-api/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234296359,"owners_count":18809988,"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":["backend","nodejs","sessions"],"created_at":"2024-10-21T09:00:28.157Z","updated_at":"2025-09-26T06:30:49.322Z","avatar_url":"https://github.com/Hemit99123.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🚀 DailySAT API\n\n**Overview:** The DailySat API powers the backend of the DailySat web platform, developed with ReactJS and TypeScript using the ViteJS buildpack.\n\n## 💻 Technologies Used:\n\n### Drizzle ORM\nDrizzle serves as both an ORM and a query builder, providing a mid-level abstraction from SQL code for improved performance. Developers are expected to have SQL knowledge, which is considered a fair trade-off by the DailySat development team. For more information, check out this [YouTube Video](https://www.youtube.com/watch?v=b8W4bupOmxw).\n\n### NodeJS with TSC\nNodeJS is a runtime environment for JavaScript, enabling server-side execution of JavaScript code. This allows for a unified programming language across the web app and API, enhancing developer experience. Its asynchronous features and promise-based structure add to its appeal. TSC is the TypeScript compiler for NodeJS, as TypeScript is not natively supported.\n\n### Redis Clusters\nRedis is an in-memory database, storing data in RAM for faster access compared to traditional databases like SQL or NoSQL (e.g., MongoDB, Cassandra). However, this also means it is susceptible to data loss on server shutdown, making it suitable for ephemeral data like sessions and verification codes. Clusters enable horizontal sharding, improving scalability, especially for session-based authentication. Refer to this [YouTube Video](https://www.youtube.com/watch?v=2HvxYMdHYcY) for more information.\n\n### Express Sessions\nThis technology abstracts session-based authentication logic from developers, leading to improved developer experience and adhering to industry best practices for security and scalability.\n\n### Swagger\nSwagger is used for seamless API documentation.\n\n## 🧱 API Architecture:\n\nThe API logic is structured into three main folders:\n\n- #### Controllers\nContains all business logic, including database queries for API endpoints.\n\n- #### Routes\nIncludes all endpoints for specific logic types, such as authentication.\n\n- #### Middleware\nHouses code that runs before any other logic in an endpoint, useful for pre-processing requests, such as checking user authentication.\n\n## 📝 Endpoint Docs:\n\nTo explore the different endpoints and their intended use cases, please navigate to the route `/api-docs` from the api endpoint.\n\n[Database ER Diagram](https://drive.google.com/file/d/1Y9Yu9_crEV4aN3SZ9a_vSYKdIGGY7dxm/preview)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhemitoncode%2Fdailysat-node-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhemitoncode%2Fdailysat-node-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhemitoncode%2Fdailysat-node-api/lists"}