{"id":23787636,"url":"https://github.com/k0l4s/blankcilapi","last_synced_at":"2025-09-06T05:32:05.760Z","repository":{"id":235056848,"uuid":"789989490","full_name":"K0l4s/blankcilapi","owner":"K0l4s","description":null,"archived":false,"fork":false,"pushed_at":"2024-11-20T14:47:41.000Z","size":283,"stargazers_count":2,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-06T21:51:39.748Z","etag":null,"topics":["emailvertify","ffmpeg","firebase","jwt","jwtauthentication","jwttoken","mysql","reactjs","spring","spring-security","springboot"],"latest_commit_sha":null,"homepage":"https://blankcil.vercel.app/","language":"Java","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/K0l4s.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-22T03:58:18.000Z","updated_at":"2024-06-29T08:33:44.000Z","dependencies_parsed_at":"2024-05-16T11:45:31.692Z","dependency_job_id":"18fc5e3e-9193-4602-8ece-4eb7ee5d9c3e","html_url":"https://github.com/K0l4s/blankcilapi","commit_stats":null,"previous_names":["k0l4s/blankcilapi"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/K0l4s/blankcilapi","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/K0l4s%2Fblankcilapi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/K0l4s%2Fblankcilapi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/K0l4s%2Fblankcilapi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/K0l4s%2Fblankcilapi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/K0l4s","download_url":"https://codeload.github.com/K0l4s/blankcilapi/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/K0l4s%2Fblankcilapi/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273859017,"owners_count":25180813,"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","status":"online","status_checked_at":"2025-09-06T02:00:13.247Z","response_time":2576,"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":["emailvertify","ffmpeg","firebase","jwt","jwtauthentication","jwttoken","mysql","reactjs","spring","spring-security","springboot"],"created_at":"2025-01-01T15:15:10.801Z","updated_at":"2025-09-06T05:32:05.402Z","avatar_url":"https://github.com/K0l4s.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BLANKCIL - THE PODCAST SOCIAL MEDIA PLATFORM\nYou can view backend project or mobile project by below link!\n### [Website Frontend Project](https://github.com/K0l4s/blankcilUI)\n### [Mobile Project](https://github.com/K0l4s/blankcil_android)\n\n## CONTENT\n1. [Short Description](#description)\n2. [Team Member](#teammember)\n3. [Product Features](#productfeatures)\n\n   3.1. [Security](#springsecu)\n   \n     3.1.1. [JWT Token](#jwt)\n   \n     3.1.2. [Email Vertify](#emailauth)\n   \n   \n## Short description \u003ca name=\"description\"\u003e\u003c/a\u003e\nBlankcil is created and developed by a student team from Ho Chi Minh City University of Technology and Education. It's a basic social media platform but focuses on podcast content.\n## Team member \u003ca name=\"teammember\"\u003e\u003c/a\u003e\n| STT | Fullname                | STUDENT ID | Username        | Status   |\n|-----|--------------------------|-----------------|-----------------|--------------|\n| 1   | HUỲNH TRUNG KIÊN         | 21110223        | [K0l4s](https://github.com/K0l4s)          | Developing   |\n| 2   | NGÔ MINH THUẬN           | 21110314        | [nauht1](https://github.com/nauht1)          | Developing   |\n| 3   | NGUYỄN HOÀNG PHƯƠNG NGÂN | 21110254        | [PhuongNgan2304](https://github.com/nauht1)  | Stopped      |\n| 4   | NGUYỄN THẾ THÀNH         | 21110300        | [thanhnt932](https://github.com/thanhnt932)      | Stopped      |\n\nInitially, the project was developed by four contributors and submitted for the 'Object-Oriented Software Technology' subject. However, the team split into two groups. The project is now being developed by HUỲNH TRUNG KIÊN and NGÔ MINH THUẬN and will be submitted for the 'Graduation Thesis Project'.\n## [Task Assignment Table ](https://app.clickup.com/9018333656/v/l/li/901802044699)\n## Product Features \u003ca name=\"productfeatures\"\u003e\u003c/a\u003e\n### 1. Security \u003ca name=\"authen\"\u003e\u003c/a\u003e\nWith authentication and authorization, we use Spring Security to protect the project with JWT Token. To verify real users, we utilize email to send a pin number. Users are required to input this pin, obtained from the email, into the Verification Page in order to use our website.\n#### 1.1. Spring Security \u003ca name=\"springsecu\"\u003e\u003c/a\u003e\n![Spring Security Explain](https://i0.wp.com/s3.ap-southeast-1.amazonaws.com/techover.storage/wp-content/uploads/2023/01/02215334/Bie%CC%82%CC%89u-do%CC%82%CC%80-kho%CC%82ng-co%CC%81-tie%CC%82u-de%CC%82%CC%80.drawio-4.png?resize=764%2C358\u0026ssl=1)\n#### 1.2. JWT Token \u003ca name=\"jwt\"\u003e\u003c/a\u003e\nWith Authenticate, when the user sends their email and password to the server, we use the AuthenticationManager class of Spring Security to confirm the information. Finally, we send a response with a token that is encoded using the UsernamePasswordAuthenticationToken method in the UsernamePasswordAuthenticationToken class provided by Spring Security.\nBelow is JWT Flow Diagram\n![JWT Flow Diagram](https://github.com/K0l4s/blankcilapi/assets/87256083/a4ff5309-d512-49ca-b9ef-864a73ae327d)\n\n#### 1.3. Email Vertify \u003ca name=\"emailauth\"\u003e\u003c/a\u003e\nWe use email to verify users when they complete the registration process. The server will send an email notification to verify the user. This email will include a 6-digit PIN.\n\nThe format of the EMAIL:\n\n![Image](https://github.com/K0l4s/blankcilUI/assets/87256083/e60b70f1-d418-48d5-b7ca-05fbb80f5324)\n\nThe Vetify Page:\n\n![image](https://github.com/K0l4s/blankcilUI/assets/87256083/df94dbc2-6146-4494-9079-8d444e2d2b5e)\n\n### 2. Podcast action \u003ca name=\"podcastact\"\u003e\u003c/a\u003e\n\n#### 2.1. Create Podcast \u003ca name=\"createpod\"\u003e\u003c/a\u003e\n\n#### 2.2. View podcast \u003ca name=\"viewpod\"\u003e\u003c/a\u003e\n\n#### 2.3. Reaction \u003ca name=\"react\"\u003e\u003c/a\u003e\n\n### 3. User Action \u003ca name=\"uacti\"\u003e\u003c/a\u003e\n\n### 4. Management System (Inprogress) \u003ca name=\"management\"\u003e\u003c/a\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fk0l4s%2Fblankcilapi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fk0l4s%2Fblankcilapi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fk0l4s%2Fblankcilapi/lists"}