{"id":22381684,"url":"https://github.com/praks7v/chat-app","last_synced_at":"2026-04-17T07:32:50.539Z","repository":{"id":223621131,"uuid":"761056626","full_name":"praks7v/chat-app","owner":"praks7v","description":"Our project is a chat application built using Python, Django, Django Channels, WebSocket, Tailwind CSS, JavaScript, and SQLite3. It aims to provide a seamless and secure messaging experience for users across different platforms.","archived":false,"fork":false,"pushed_at":"2024-06-10T14:45:58.000Z","size":102,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-25T23:27:32.616Z","etag":null,"topics":["argocd","chat-app","django","docker","jenkins","minikube","websocket"],"latest_commit_sha":null,"homepage":"","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/praks7v.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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-02-21T06:43:53.000Z","updated_at":"2024-06-15T05:51:04.000Z","dependencies_parsed_at":"2024-02-27T14:27:14.688Z","dependency_job_id":"15271d4a-d907-4662-862f-ea817af7ccd0","html_url":"https://github.com/praks7v/chat-app","commit_stats":null,"previous_names":["praks7v/chat-app"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/praks7v/chat-app","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/praks7v%2Fchat-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/praks7v%2Fchat-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/praks7v%2Fchat-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/praks7v%2Fchat-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/praks7v","download_url":"https://codeload.github.com/praks7v/chat-app/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/praks7v%2Fchat-app/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31920021,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-16T18:22:33.417Z","status":"online","status_checked_at":"2026-04-17T02:00:06.879Z","response_time":62,"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":["argocd","chat-app","django","docker","jenkins","minikube","websocket"],"created_at":"2024-12-05T00:09:56.153Z","updated_at":"2026-04-17T07:32:50.449Z","avatar_url":"https://github.com/praks7v.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Chat App\n\nOur project is a chat application built using Python, Django, Django Channels, WebSocket, Tailwind CSS, JavaScript, and SQLite3. It aims to provide a seamless and secure messaging experience for users across different platforms.\n\n## Key Features:\n\n- Real-time messaging using Django Channels and WebSocket.\n- Responsive and sleek user interface crafted with Tailwind CSS and JavaScript.\n- Data management powered by Postgresql for efficient storage and retrieval.\n- Emphasis on security with end-to-end encryption and robust authentication mechanisms.\n\n## Objective:\nOur goal is to deliver a feature-rich and user-friendly chat application that prioritizes privacy and usability, empowering individuals and businesses to communicate effectively in today's digital landscape.\n\n\n## Getting Started\n\nThese instructions will help you set up a local development environment.\n\n**Prerequisites**\n\n   - Be using Linux, WSL or MacOS, with bash, make etc.\n   - Python 3.x - for running locally, linting, running tests etc.\n\n**Clone the repo**\n```\ngit clone https://github.com/praks7v/chat-app.git\n```\n\n### 1. **Run locally**\n\n```bash\ncd chatapp\nmake venv\nmake install\nmake makemigrations\nmake migrate\nmake run\n```\n\n**Usage**\n\nVisit http://localhost:8000 to access the application.\n\n### 2. **Create a Docker Image and Run Docker Container**\n\n   To build the Docker image run the following command:\n   ```\n   docker build . -t chatapp-web:latest -f docker/Dockerfile\n   ```\n\n   To build the Docker image using docker compose:\n   ```\n   docker compose -f docker/docker-compose.yaml build\n   ```\n   To run the Docker container, use the following command:\n   ```\n   docker run -p 8000:8000 chatapp-web:latest\n   ```\n   To run the Docker container using docker compose, use the following command:\n   ```\n   docker compose -f docker/docker-compose.yaml up\n   ```\nThis command maps port `8000` in the container to port `8000` on your host machine. You can access the application by navigating to `http://localhost:8000`.\n\n### 3. **Create a Jenkins Pipeline**\n- Follow the Jenkins official documentation for [Jenkins Installation](https://www.jenkins.io/doc/book/installing/).\n- To run sonarqube docker iamge, use the following command:\n```\ndocker run -d --name sonarqube -p 9000:9000 sonarqube:lts-community\n```\nTo access the sonarqube on browser http://localhost:9000/.\n- **Configure Jenkins**:\n  - Open Jenkins and navigate to the \"New Item\" page.\n  - Create a new Pipeline job and configure it to use the `Jenkinsfile` from the repository.\n  - **Plugins to install**:\n     - docker plugins\n     - OWASP Dependency-Check Plugin\n     - Pipeline\n     - SonarQube Scanner for Jenkins\n  - **Configure tools**:\n     - Docker\n     - OWASP Dependency-Check\n     - SonarQube\n  - **System configure**:\n    - Sonarqube\n        \n### 4. Deploy Application on Minikube Cluster\n- Follow the Minikube official documentation for [Minikube Installation](https://minikube.sigs.k8s.io/docs/start/).\n\n  **Start Minikube**:\n   ```\n   minikube start\n   ```\n   **Verify Minikube Status**:\n   ```\n   minikube status\n   ```\n\n   **Minikube comes with an Ingress addon which you need to enable**:\n   ```\n   minikube addons enable ingress\n   ```\n  **Activate Minikube docker environment**:\n   ```\n   eval $(minikube docker-env)\n   ```\n   **Add an entry to your `/etc/hosts` file to map `chatapp.com` to the Minikube IP**:\n   ```\n   echo \"$(minikube ip) chatapp.com\" | sudo tee -a /etc/hosts\n   ```\n  **Build Docker image**:\n   ```\n   docker compose build . -f docker/docker-compose.yaml\n   ```\n  **Apply Kubernetes configurations**:\n   ```\n   kubectl apply -f argocd/manifests\n   ```\n  **Check the status of Deployments**\n   ```\n   kubectl get all\n   ```\n  **Access the applicaton on web**:\n   ```\n   http://chatapp.com\n   ```\n   \n  **Create a Superuser into the container**\n   ```\n   docker exec -it  \u003ccontainer_name_or_id\u003e python manage.py createsuperuser\n   kubectl exec -it -n chatapp \u003cconatainer_name_or_id\u003e python manage.py createsuperuser\n   ```\n **Login to Django admin and add chat_rooms**\n   ```\n   http://localhost:8000/admin\n   ```\n### 5. Deploy ArgoCD for Contineuos Delivery\n\n**Installing ArgoCD**\n   - Using kubectl\n\n**Create the Argo CD namespace**:\n```\nkubectl create namespace argocd\n```\n**Install Argo CD components**:\n```\nkubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml\n```\n**Accessing the Argo CD API Server**:\n\nTo access the Argo CD API server, use port forwarding:\n```\nkubectl port-forward svc/argocd-server -n argocd 8080:443\n```\nOpen your browser and navigate to `https://localhost:8080`.\n\n**Logging into Argo CD to get the `Initial Admin Password`**:\n\nThe initial password for the admin account is auto-generated and stored in a Kubernetes secret. To retrieve it, run:\n```\nkubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath=\"{.data.password}\" | base64 -d\n```\n\n**Open the Web UI: Navigate to `https://localhost:8080` in your browser.**\n\nLogin: Use `admin` as the username and the password retrieved earlier.\n\n**Deploying Applications with ArgoCD**:\n```\nkubectl apply -f argocd/application.yaml\n```\nOpen the Web UI: Navigate to `https://localhost:8080` in your browser and check the status of application.\n\n---\n## Contributing\nContributions are welcome! Please read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct and the process for submitting pull requests.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpraks7v%2Fchat-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpraks7v%2Fchat-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpraks7v%2Fchat-app/lists"}