{"id":21512689,"url":"https://github.com/noumanahmad448/django-blog-posts","last_synced_at":"2026-04-11T10:32:38.476Z","repository":{"id":188474003,"uuid":"678797441","full_name":"NoumanAhmad448/django-blog-posts","owner":"NoumanAhmad448","description":"A blog application with users privileges  developed in Django \u0026 Fast API \u0026 Next.js","archived":false,"fork":false,"pushed_at":"2024-11-05T04:54:57.000Z","size":1918,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-01-03T14:30:33.482Z","etag":null,"topics":["anaconda","bootstrap","ci-cd","custom-middleware","django","docker","env","fastapi-sqlalchemy","fetch-api","github-actions","internationaltion","jinja","jquery","migration","mysql","nextjs","nginx","rest-api","static-files","uwsgi-configuration"],"latest_commit_sha":null,"homepage":"https://django.lyskills.com","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NoumanAhmad448.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2023-08-15T12:01:52.000Z","updated_at":"2024-11-05T04:55:01.000Z","dependencies_parsed_at":"2023-09-22T23:18:31.894Z","dependency_job_id":"839fd851-cc82-44c8-b6ea-1198b49bc917","html_url":"https://github.com/NoumanAhmad448/django-blog-posts","commit_stats":null,"previous_names":["noumanahmad448/django-blog-posts"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/NoumanAhmad448/django-blog-posts","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NoumanAhmad448%2Fdjango-blog-posts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NoumanAhmad448%2Fdjango-blog-posts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NoumanAhmad448%2Fdjango-blog-posts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NoumanAhmad448%2Fdjango-blog-posts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NoumanAhmad448","download_url":"https://codeload.github.com/NoumanAhmad448/django-blog-posts/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NoumanAhmad448%2Fdjango-blog-posts/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31677813,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-11T08:18:19.405Z","status":"ssl_error","status_checked_at":"2026-04-11T08:17:08.892Z","response_time":54,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["anaconda","bootstrap","ci-cd","custom-middleware","django","docker","env","fastapi-sqlalchemy","fetch-api","github-actions","internationaltion","jinja","jquery","migration","mysql","nextjs","nginx","rest-api","static-files","uwsgi-configuration"],"created_at":"2024-11-23T22:43:19.439Z","updated_at":"2026-04-11T10:32:38.416Z","avatar_url":"https://github.com/NoumanAhmad448.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Blog Posts Project\n\u003e ### An app that can create blogs. The main purpose to create this app to practice django skills and make the source code available online for other developers to start this repo for their own custom need\nUsing this app, you can\n1. create an account, update the user password, login to the website\n2. fetch the user detail using API\n3. create a token for API validation\n4. localization has been implementated for english and chinese languages. You can pass a get params lang=en|zh\n5. create, update a post. Every post require admin approval\n6. every post can be bookmark/unbookmark on user request\n7. On updating the password, system will fire an email to the related user. You need to make sure all the settings are properly setup in settings.py and .env files. If you want to skip sending the email, make sure to set EMAIL_HOST_EXIST as None. No further changes are required.\n\n\u003chr/\u003e\n\n![Alt home page](md_images/01.png \"Home Page\")\n![Alt reg page](md_images/02.png \"Registeration Page\")\n![Alt login page](md_images/03.png \"Login Page | in chinese\")\n![Alt create a post](md_images/04.png \"Create a Post\")\n![Alt list page](md_images/05.png \"List the Post\")\n\n## Setup (Recommended)\n1. install anaconda\n2. create an environment using\n```\n conda create -n \"django-blog-posts\" python=3.10\n ```\n3. run\n```\nconda activate django-blog-posts\n```\n4. run\n```\npip install -r requirements.txt\n```\n5. replace file name in blog_posts/copy_settings.py to settings.py\n6. you need to setup database(mysql) in ```.env``` file. Just replace .env.backup to .env and add db credentials\n7. install ```redis``` and change your server path in ```.env``` file\n7. create a database ```django_blog_posts``` in the database\n8. run migrations using\n```\npython manage.py migrate\n```\n9. run\n ```\n python manage.py runserver 0.0.0.0:8080\n ```\n\n# Auto Deployment using Github Actions\n1. you may refer to [deployment.yml](/.github/workflows/deployment.yml) file in github Action for deployment\n2. refer to [deployment_using_uwsgi](/deployment_using_uwsgi.md) for deploying using uwsgi\n3. refer to [deployment using gunicorn](/deployment.md) for deploying using gunicorn\n\n# Dockering Version\n1. run command\n```\ndocker-compose up\n```\nFor reference check [DockerFile](/Dockerfile) and [docker-compose.yml](/docker-compose.yml)\n## locationlization rules\n1. install gettext. follow django documentation or Google it\n2. following commands can be handy while creating locationlization\n    1. run\n    ```\n    django-admin makemessages --locale=zh --extension=html,txt,py\n    ```\n    2. run\n    ```\n    django-admin compilemessages\n    ```\n\n## Information\n1. super user credentials: username: test_user  password:test_user\n\n## Next JS frontend\nYou can refer to [this path for next js](/frontend-react/)\nLast but not least, don't forget to [our website](https://nextjs.lyskills.com)\n## Technical Knowledge\n1. custom middleware has been created for language translation ```middlewares.LanguageTransMiddleware```\n2. django session and token validation has been implemented\n3. front end has been developed using Jquery \u0026 Bootstrap\n4. ```Postman collection has been made online for public use```\n5. django custom template tags and filter\n6. Serializer, form validation have been implemented\n7. ``` Postgre support is included. You need to change the credentials in settings.py ```\n8. we have set postgre database as default database. if you are curious to change it to mysql. change replace default1 key with default in\nsettings.py\n\n## Deployment\nTo deploy using Nginx and uwsgi, please refer to following [link](/deployment.md)\n\n# FAST API\nyou may refer to [fast_api](/fast_api/) for all API ends point.\n```Note: you may not get db schema as I am using the same django db schema.\nFurther Do not forget to check the swagger documentation by visiting the\n\n** your_server/docs **\n```\nFor deployment of **Fast APi using gunicorn,uvicorn,hypervisor and nginx** Please refer to [this](fast_api_deployment.md)\n\n## Common Commands\n```\npython manage.py migrate\n```\n```\npython manage.py runserver\n```\n```\npython manage.py collectstatic\n```\n```\ndocker exec -it blog_post /bin/bash\n```\n```\nconda activate django-blog-posts\n```\n```\npip list\n```\n```\n python manage.py test\n```\n### Django Test cases\n\n1. to app specific test cases,Run\n```\n python manage.py test auths\n```\n2. to tag specific test cases, run. Two tags are used in the project ```slow``` and ```fast```\n```\n python manage.py test --tags=slow\n```\n\n## mysql commands\n```\nCREATE USER 'root2'@'localhost' IDENTIFIED BY 'root2';\n```\n```\nGRANT ALL PRIVILEGES ON * . * TO 'root2'@'localhost';\n```\n```\nFLUSH PRIVILEGES;\n```\n\n## Amazon Deployment\nYou can open [this](http://web-django.eba-ch3dwa3n.us-east-1.elasticbeanstalk.com/) to check deployment on Amazon Elastic Beanstalk. For source code, Please [open me](https://github.com/NoumanAhmad448/web_django/tree/master/app)\n\n\n\u003e ## Website Links\n1. https://django.lyskills.com\n2. https://test-django.lyskills.com\n3. https://fastapi.lyskills.com\n4. https://flask.lyskills.com\n5. https://ec2-user-django.lyskills.com\n6. http://dev-web-django.eba-ch3dwa3n.us-east-1.elasticbeanstalk.com\n7. http://web-django.eba-ch3dwa3n.us-east-1.elasticbeanstalk.com/\n8. https://nextjs.lyskills.com\n\n\n## License\nThis repository is licensed under the [Apache-2.0 License](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnoumanahmad448%2Fdjango-blog-posts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnoumanahmad448%2Fdjango-blog-posts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnoumanahmad448%2Fdjango-blog-posts/lists"}