{"id":45340523,"url":"https://github.com/jamilxt/portfolio","last_synced_at":"2026-02-21T10:22:10.125Z","repository":{"id":289910050,"uuid":"972782500","full_name":"jamilxt/portfolio","owner":"jamilxt","description":"Personal Portfolio Project using Java \u0026 Spring Boot for Pondits (Batch 7)","archived":false,"fork":false,"pushed_at":"2025-08-10T16:52:45.000Z","size":5463,"stargazers_count":5,"open_issues_count":19,"forks_count":14,"subscribers_count":2,"default_branch":"develop","last_synced_at":"2025-08-10T18:28:50.673Z","etag":null,"topics":["java","spring-boot","thymeleaf"],"latest_commit_sha":null,"homepage":"https://portfolio-6nv7.onrender.com/","language":"CSS","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/jamilxt.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,"zenodo":null}},"created_at":"2025-04-25T16:48:29.000Z","updated_at":"2025-08-10T16:52:49.000Z","dependencies_parsed_at":"2025-06-03T18:59:03.296Z","dependency_job_id":"92695636-89fd-415e-88b0-f1dbdd6f8bc6","html_url":"https://github.com/jamilxt/portfolio","commit_stats":null,"previous_names":["jamilxt/portfolio"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jamilxt/portfolio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamilxt%2Fportfolio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamilxt%2Fportfolio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamilxt%2Fportfolio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamilxt%2Fportfolio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jamilxt","download_url":"https://codeload.github.com/jamilxt/portfolio/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamilxt%2Fportfolio/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29679049,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-21T09:33:50.764Z","status":"ssl_error","status_checked_at":"2026-02-21T09:33:19.949Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["java","spring-boot","thymeleaf"],"created_at":"2026-02-21T10:22:09.432Z","updated_at":"2026-02-21T10:22:10.120Z","avatar_url":"https://github.com/jamilxt.png","language":"CSS","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Portfolio\n## Personal Portfolio Project using Java \u0026 Spring Boot for Pondits (Batch 7)\n\u003cimg width=\"100%\" alt=\"image\" src=\"https://github.com/user-attachments/assets/5a6ebecf-0446-4db5-8c47-41899529d948\" /\u003e\n\n## Live Preview:\n**Environment:** Develop \n\n**Server Side Rendered (SSR) App:** [Render](https://portfolio-6nv7.onrender.com/)\n\n**Frontend (Web):** (Under development)\n\n**Frontend (Mobile):**\n[Flutter](https://github.com/Didar1313/personal_blog)\n\n---\nEnvironment: Production (not yet)\n\n## How to Build \u0026 Run\n1. Install Java 17 (LTS) of any distribution. You can try Amazon Corretto 17. You can find the installation instructions here: https://docs.aws.amazon.com/corretto/latest/corretto-17-ug/what-is-corretto-17.html\n2. Open this project with your preferred IDE. We prefer IntelliJ IDEA Ultimate Edition. Other IDEs like VS Code or Spring Tools Suite (STS) will do.\n3. To build the project execute the following command:\n    ```\n    ./mvnw clean package\n    ```\n   Executing that command will generate a jar under \"target\" folder which you can run using the following command:\n    ```\n    java -jar portfolio-0.0.1-SNAPSHOT.jar\n    ```\n   or, You can run the app directly by following the command:\n    ```\n    ./mvnw spring-boot:run\n    ```\n   or, you can run via your preferred IDE's RUN/PLAY button.\n4. After running the application, it will be up \u0026 running at http://localhost:8081\n5. You can also access the Swagger API Doc at: http://localhost:8081/swagger-ui/index.html# . You can go ahead and execute the Organization's REST APIs I prepared for you guys to play with.\n\n## Learning Checklist\n- [x] Java 17\n- [ ] Core Concepts\n    - [x] Servlet\n    - [x] Convention over Configuration\n    - [x] Inversion of Control (IoC)\n    - [x] IoC Container\n    - [x] Dependency Injection\n    - [x] Application Context\n    - [x] Bean\n    - [x] DispatcherServlet\n    - [ ] Interceptor \n    - [x] Filter\n- [x] Server-Side (using Template Engine)\n    - [x] / (Portfolio Homepage)\n    - [x] Practice Thymeleaf Tags (e.g. th:if, th:each, etc.)\n    - [x] Thymeleaf Fragment \u0026 Layouts (Reusability)\n- [ ] REST API\n    - [X] /api/projects (CRUD for Projects)\n    - [x] Secure Endpoints\n    - [x] Input Validation\n    - [x] API Documentation: Swagger\n    - [x] API Paging and Sorting\n- [x] application.properties\n  - [x] @ConfigurationProperties\n  - [x] @Value\n  - [x] yaml/yml format\n- [x] Exception\n  - [x] Custom Exception Class\n  - [x] Global Exception Handler\n    - [x] @RestControllerAdvice\n    - [x] Problem Details RFC 7807\n    - [x] @ExceptionHandler\n    - [x] @ControllerAdvice\n- [x] Logging\n  - [x] Framework\n    - [x] Logback\n    - [x] Facade: SLF4J\n  - [x] Logging Levels\n  - [x] Configure Logging using application.properties\n  - [ ] Configure Logback using XML\n- [ ] External Service Call\n  - [ ] HTTP Client\n  - [ ] RestTemplate\n  - [ ] WebClient\n  - [ ] Feign Client\n- [ ] Boilerplate Code Reduce\n  - [x] Mapper for Mapping\n    - [x] Native from Spring: BeanUtils\n    - [ ] 3rd Party Libraries\n      - [ ] MapStruct\n      - [ ] ModelMapper\n  - [x] Lombok for Generating Getters and Setters\n- [ ] Spring Security\n  - [ ] Authentication\n    - [ ] Form-Based Authentication\n    - [x] Basic Authentication\n    - [x] JWT (JSON Web Token)\n    - [ ] OAuth2\n  - [ ] Authorization\n    - [ ] Role-Based Access Control (RBAC)\n  - [ ] CSRF Protection\n  - [ ] CORS\n  - [ ] Session Management\n  - [x] Password Encoding\n- [ ] Database\n    - [ ] Database System\n      - [x] H2 (In-Memory Database, Embedded)\n      - [ ] PostgreSQL\n    - [ ] DB Initialization \u0026 Migration\n      - [ ] Spring Boot Database Initialization\n        - [ ] Schema.sql\n        - [ ] Data.sql\n        - [x] hibernate.hbm2ddl.auto\n      - [ ] DB Migration\n        - [ ] Flyway\n        - [ ] Liquibase\n- [ ] ORM\n  - [ ] Hibernate\n  - [x] JPA (Java Persistence API)\n- [ ] Spring Data\n  - [x] Spring Data JPA\n  - [ ] Spring Data JDBC\n  - [ ] Spring Data MongoDB\n  - [ ] Spring Data Redis\n- [x] Spring Profiles (local, dev, prod)\n- [ ] Spring Data JPA\n  - [x] @Entity\n  - [x] @Table\n  - [x] @Id\n  - [x] @GeneratedValue\n  - [x] @Column\n  - [ ] @OneToMany\n  - [ ] @ManyToOne\n  - [ ] @ManyToMany\n  - [ ] @Transactional\n- [ ] Spring Data JPA Query\n  - [ ] @Query\n  - [ ] Native Query\n  - [ ] Named Query\n  - [ ] Criteria API\n  - [ ] Spring Data JPA Specification\n- [ ] Spring Actuator\n  - [ ] Health Check\n  - [ ] Metrics\n  - [ ] Info\n  - [ ] Custom Endpoints\n- [ ] Deployment\n  - [x] Platform as-a-Service (PaaS): [Render](https://portfolio-6nv7.onrender.com/)\n  - [ ] Infrastructure as-a-Service (IaaS): Virtual Machine\n- [ ] Good/Best Practices\n  - [ ] Code Quality\n    - [ ] SonarQube\n    - [ ] SonarCloud\n  - [x] Code Refactoring\n  - [x] Code Review\n  - [x] Unit Testing\n    - [x] JUnit 5\n    - [x] Mockito\n  - [ ] Integration Testing\n    - [ ] Spring Test\n    - [ ] Testcontainers\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjamilxt%2Fportfolio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjamilxt%2Fportfolio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjamilxt%2Fportfolio/lists"}