{"id":27107058,"url":"https://github.com/primaldjinn/jambo","last_synced_at":"2026-04-11T05:31:30.896Z","repository":{"id":236083084,"uuid":"791878005","full_name":"PrimalDjinn/jambo","owner":"PrimalDjinn","description":"DRF","archived":false,"fork":false,"pushed_at":"2025-04-02T10:19:08.000Z","size":1897,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-02T11:25:17.251Z","etag":null,"topics":["django","django-rest-framework","docker","nginx","postgres","postman","python","redis","vitepress"],"latest_commit_sha":null,"homepage":"https://primaldjinn.github.io/jambo/","language":"Python","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/PrimalDjinn.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-04-25T14:44:32.000Z","updated_at":"2025-04-02T10:19:11.000Z","dependencies_parsed_at":"2025-03-18T07:28:51.627Z","dependency_job_id":"2c38292a-b54f-45f4-ab38-8b588b7dfc03","html_url":"https://github.com/PrimalDjinn/jambo","commit_stats":null,"previous_names":["kgarchie/jambo","primaldjinn/jambo"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PrimalDjinn%2Fjambo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PrimalDjinn%2Fjambo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PrimalDjinn%2Fjambo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PrimalDjinn%2Fjambo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PrimalDjinn","download_url":"https://codeload.github.com/PrimalDjinn/jambo/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247546823,"owners_count":20956432,"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":["django","django-rest-framework","docker","nginx","postgres","postman","python","redis","vitepress"],"created_at":"2025-04-06T20:30:17.452Z","updated_at":"2025-12-30T20:13:58.691Z","avatar_url":"https://github.com/PrimalDjinn.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Jambo\n\n## Introduction\n\nChosen stack: \u003cbr\u003e\n\u0026nbsp; \u0026nbsp; 1. Django - Django Rest Framework \u003cbr\u003e\n\u0026nbsp; \u0026nbsp; 2. Vitepress - For Documentation \u003cbr\u003e\n\u0026nbsp; \u0026nbsp; 3. Docker \u0026 Shell - For Containerization \u003cbr\u003e\n\u0026nbsp; \u0026nbsp; 4. Postgres - For Database \u003cbr\u003e\n\u0026nbsp; \u0026nbsp; 5. Redis - For Caching \u003cbr\u003e\n\u0026nbsp; \u0026nbsp; 6. GitHub - For Version Control \u003cbr\u003e\n\u0026nbsp; \u0026nbsp; 7. GitHub Actions - For Deployment (Docs only) \u003cbr\u003e\n\u0026nbsp; \u0026nbsp; 8. Nginx - For Reverse Proxy \u003cbr\u003e\n\u0026nbsp; \u0026nbsp; 9. PostMan - Tool to help with API documentation\n\nA thorough documentation of the API is online [here](https://kgarchie.github.io/jambo/).\n\nHere's the PostMan collection:\n\n[\u003cimg src=\"https://run.pstmn.io/button.svg\" alt=\"Run In Postman\" style=\"width: 128px; height: 32px;\"\u003e](https://god.gw.postman.com/run-collection/15264165-ff91f75b-81bb-4bda-b45e-24002ddad076?action=collection%2Ffork\u0026source=rip_markdown\u0026collection-url=entityId%3D15264165-ff91f75b-81bb-4bda-b45e-24002ddad076%26entityType%3Dcollection%26workspaceId%3D91d100e3-340c-4dbd-b05b-e5eabbc100e7)\n\nAlternatively, the [docs/](./docs) folder is [vitepress](https://vitepress.dev/) powered and can be served locally\nby using the following command in that directory.\n\n```bash\npnpm run docs:dev\n```\n\nThis is done automagically when running the server and is accessible\nvia [http://localhost/docs](http://localhost/docs).\nYou may as well just skim the raw markdown files in the [docs/](./docs) folder should you wish to.\n\n## Installation\n\nYou can install this project in two ways, either via Docker or via Shell Scripting.\n\n### Docker (Recommended)\n\nI have provided a [Docker Compose](./docker-compose.yml) for the easiest deployment.\nThis however is only suitable if your computer is powerful enough to run the containers.\n\n#### Prerequisites\n\n- [Docker](https://docs.docker.com/get-docker/) - You need docker installed.\n\nThen run the following command in the root directory of the project.\n\n```bash\ndocker-compose up\n```\n\nThis will spin up all the needed containers and the default django-rest-framework API is accessible\nvia [http://localhost/api/](http://localhost/api/).\n\n### Shell Scripting\n\nI have also provided a [shell script](./run.sh) for easy non-docker deployment.\nThis time however, you need to have the following installed:\n\n### Prerequisites\n\n- [Python 3](https://www.python.org/downloads/) - You need at least python 3.10 installed. Due to the use of type hints\n- [Node](https://nodejs.org/en/download/) - You need node installed. This is for the documentation.\n- [Postgres](https://www.postgresql.org/download/) - You need postgres installed. Make sure there exists a database\n  whose URI string should be added to the `.env`.\n- [Redis](https://redis.io/download) - Optional, could be run as a container, wsl or vm\n- Nginx is not implemented outside docker due to known issues - Skip\n\nThen run the following command in the root directory of the project.\n\n##### Linux\n\n```bash\nchmod +x run.sh \u0026\u0026 ./run.sh\n```\n\n##### Windows\n\n```shell\n./run.bat\n````\n\n**NB:** You may run into an Execution-Policy error on Windows, in that case, you need to execute the following command\nin an admin window before retrying the step above in a fresh window again.\n\n```shell\nSet-ExecutionPolicy RemoteSigned\n```\n\n## Secrets\n\nEnvironment variables should be stored in a `.env` and a `.env.docker`(used in docker) file in the root directory of the\nproject. You can rename the `.env.example` file to `.env` and `.env.docker.example` to `.env.docker` for containerized environments, then fill in the\nnecessary details. It's rudimentary and self-documented with comments.\n\nYou will notice that if the app will create a `SECRET_KEY` for you and store it in the `.env` file if you don't provide\none. This is not recommended for\nproduction, so always define a `SECRET_KEY` in your `.env` file or environment. The `SECRET_KEY` is used for hashing and\nencryption. It's just a long random string, can be anything.\n\n## Testing\n\nI have included tests to ensure the API is working as expected.\nRunning tests can be done via the following command once the server is up\n\n```shell\npython manage.py test\n```\n\n**Note** Do not use PyCharm's built in test runner or debugger as it won't initialise settings and environment\nvariable therein properly\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprimaldjinn%2Fjambo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprimaldjinn%2Fjambo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprimaldjinn%2Fjambo/lists"}