{"id":24837127,"url":"https://github.com/fairfield-programming/backend-server","last_synced_at":"2026-03-11T05:31:52.367Z","repository":{"id":37961084,"uuid":"440608127","full_name":"fairfield-programming/backend-server","owner":"fairfield-programming","description":"📠 The backend of the Fairfield Programming Association website. ","archived":false,"fork":false,"pushed_at":"2024-02-12T05:29:50.000Z","size":22473,"stargazers_count":27,"open_issues_count":20,"forks_count":14,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-09-03T02:35:01.479Z","etag":null,"topics":["api","authentication","backend","bcrypt","heroku","http","http-server","javascript","node","node-js","nodejs","nodejs-server","npm","server","website"],"latest_commit_sha":null,"homepage":"https://fairfieldprogramming.org/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fairfield-programming.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":"contributing.md","funding":".github/FUNDING.yml","license":"license.md","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":null,"patreon":"fairfieldprogramming","open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":null}},"created_at":"2021-12-21T18:03:43.000Z","updated_at":"2025-05-08T20:05:26.000Z","dependencies_parsed_at":"2025-09-03T02:27:46.780Z","dependency_job_id":"8afece07-e265-4f78-b5e4-e67b5727fa90","html_url":"https://github.com/fairfield-programming/backend-server","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/fairfield-programming/backend-server","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fairfield-programming%2Fbackend-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fairfield-programming%2Fbackend-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fairfield-programming%2Fbackend-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fairfield-programming%2Fbackend-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fairfield-programming","download_url":"https://codeload.github.com/fairfield-programming/backend-server/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fairfield-programming%2Fbackend-server/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30372170,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-10T21:41:54.280Z","status":"online","status_checked_at":"2026-03-11T02:00:07.027Z","response_time":84,"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":["api","authentication","backend","bcrypt","heroku","http","http-server","javascript","node","node-js","nodejs","nodejs-server","npm","server","website"],"created_at":"2025-01-31T05:53:24.824Z","updated_at":"2026-03-11T05:31:52.343Z","avatar_url":"https://github.com/fairfield-programming.png","language":"JavaScript","readme":"# NOTICE\n\nThis repository is being archived in favor of a new backend server built in Bun.js. The new server will have a much clearer architecture with documentation and focus on maintainability. On top of this, the new repository will have a clearer focus with new issues and progress reports each week. \n\n------\n\n\u003cp align=\"center\"\u003e\n\u003cimg width=\"200\" src=\"https://raw.githubusercontent.com/fairfield-programming/backend-server/d84cd53499177b9069d3a0a72c80701627190c18/.github/media/logo-full.svg\"\u003e\n\u003c/p\u003e\n\n# Backend Server\n\n\u003cp align=\"left\"\u003e\n\n\u003cimg src=\"https://img.shields.io/badge/dynamic/json?color=green\u0026label=Grade\u0026query=grade\u0026url=https%3A%2F%2Fraw.githubusercontent.com%2Ffairfield-programming%2Fbackend-server%2Fmaster%2F.github%2Fmetrics.json\" alt=\"Code Score\"\u003e\n\u003cimg src=\"https://img.shields.io/github/contributors/fairfield-programming/backend-server\" alt=\"GitHub contributors\"\u003e\n\u003cimg src=\"https://img.shields.io/github/commit-activity/w/fairfield-programming/backend-server\" alt=\"GitHub commit activity\"\u003e\n\u003cimg src=\"https://img.shields.io/website?down_color=lightgrey\u0026down_message=offline\u0026up_color=blue\u0026up_message=online\u0026url=https%3A%2F%2Ffairfieldprogramming.org\" alt=\"Website\"\u003e\n\u003cimg src=\"https://img.shields.io/github/issues/fairfield-programming/backend-server\" alt=\"GitHub issues\"\u003e\n\u003cimg src=\"https://img.shields.io/github/workflow/status/fairfield-programming/backend-server/Main\" alt=\"GitHub Workflow Status\"\u003e\n\u003cimg src=\"https://img.shields.io/github/stars/fairfield-programming/backend-server\" alt=\"GitHub Org's stars\"\u003e\n\u003cimg src=\"https://img.shields.io/github/languages/top/fairfield-programming/backend-server\" alt=\"GitHub top language\"\u003e\n\u003cimg src=\"https://img.shields.io/badge/dynamic/json?color=blue\u0026label=Dependencies\u0026query=indirectDependenciesCount\u0026url=https%3A%2F%2Fraw.githubusercontent.com%2Ffairfield-programming%2Fbackend-server%2Fmaster%2F.github%2Fmetrics.json\" alt=\"Dependencies\"\u003e \n  \n\u003c/p\u003e\n\n## Features\n\n### Duck Generator\n\nWe didn't want to use people's faces for the profile pictures. This was for three reasons: we didn't want to pay for hosting the image files, we were scared of what people would upload, and since our main audience is minors, we didn't want their faces to be publicly available. To solve these problems, we decided to use rubber duck avatars instead of photos. Users are able to customize their ducks by adding glasses, hats, items, etc (and they can even set their own colors).\n\n\u003cp align=\"center\"\u003e\n\n\u003cimg width=\"100\" src=\"https://fairfield-programming.herokuapp.com/duck/10001000007000053/30\" alt=\"Cool Duck\"\u003e\n\u003cimg width=\"100\" src=\"https://fairfield-programming.herokuapp.com/duck/10102000005000045/30\" alt=\"Red Duck\"\u003e\n\u003cimg width=\"100\" src=\"https://fairfield-programming.herokuapp.com/duck/10603000000000004/30\" alt=\"Blue Duck\"\u003e\n\u003cimg width=\"100\" src=\"https://fairfield-programming.herokuapp.com/duck/10001000000000011/30\" alt=\"Outline Duck\"\u003e\n\u003cimg width=\"100\" src=\"https://fairfield-programming.herokuapp.com/duck/10000000006000012/30\" alt=\"Brown Duck\"\u003e\n\n\u003c/p\u003e\n\n### Authentication Support\n\nWe realized early on that there needed to be support for users subscribing to events, email lists, and team features. To do this, we needed the ability for users to create accounts and sign into them. To do this, we added an authentication system that uses many of the strongest security protocols offered today. On top of this security, we built our API to be as strict as possible so that fake accounts cannot be easily created and users with improper credentials cannot mess with accounts.\n\n### Joke API\n\nI was really bored and also thought it would be a nice feature, so I added a joke API. The whole point of it is that you can query it and get a random joke about ducks. I am not really sure why I picked ducks, but I think that there is something cute and pure about them. Did you know ducks mate for life? My dad taught me that, I guess this API is dedicated to him. If you want to query the Duck Joke API, you can use any of the below links.\n\n\u003cp align=\"center\"\u003e\n\u003ci\u003eWhy did the duck go to the chiropractor? To get its back quacked.\u003c/i\u003e\n\u003c/p\u003e\n\n```python\n/joke         # gets a random joke\n/jokes/count  # gets the amount of jokes the api has\n/jokes/random # gets a random joke\n/jokes/1      # gets a joke with an id of '1'\n/jokes/3      # gets a joke with an id of '3'\n```\n\n## Setup\n\nTo setup this project, you have to follow these simple steps. The required code to start the project is node.js and npm.\n\n1. Clone the repository by using the github cli, app, or the `git clone https://github.com/fairfield-programming/backend-server` command.\n2. Run the `npm install` command to install all of the dependencies.\n3. Run the `npm start` command to run the server or `npm test` to test the code.\n\n## Contribute\n\nIf you simply star the repo, this helps us out tremendiously. Past that, if you share this repo with your friends, that helps a lot too. If you are feeling super generous, then you can find some issues that you have with the website and try to help us with them. _You can also contribute to some of our [other projects](https://github.com/fairfield-programming)!_\n\n\u003cp align=\"center\"\u003e\n\n\u003ca href=\"https://github.com/fairfield-programming/backend-server/issues?q=label%3A%22good%20first%20issue%22\"\u003e\n\u003cimg alt=\"GitHub labels\" src=\"https://img.shields.io/github/labels/fairfield-programming/backend-server/good%20first%20issue\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://github.com/fairfield-programming/backend-server/issues?q=label%3A%22help+wanted%22\"\u003e\n\u003cimg alt=\"GitHub labels\" src=\"https://img.shields.io/github/labels/fairfield-programming/backend-server/help%20wanted\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://github.com/fairfield-programming/backend-server/issues?q=label%3A%22bug%22\"\u003e\n\u003cimg alt=\"GitHub labels\" src=\"https://img.shields.io/github/labels/fairfield-programming/backend-server/bug\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://github.com/fairfield-programming/backend-server/issues?q=label%3A%22enhancement%22\"\u003e\n\u003cimg alt=\"GitHub labels\" src=\"https://img.shields.io/github/labels/fairfield-programming/backend-server/enhancement\"\u003e\n\u003c/a\u003e\n\n\u003c/p\u003e\n\nTo start helping, you can click some of the above labels to jump to the pages with issues. Or, you can submit an issue by clicking the last button.\n","funding_links":["https://patreon.com/fairfieldprogramming"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffairfield-programming%2Fbackend-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffairfield-programming%2Fbackend-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffairfield-programming%2Fbackend-server/lists"}