{"id":31252357,"url":"https://github.com/aland20/aland20.com","last_synced_at":"2026-04-29T22:37:56.504Z","repository":{"id":40891627,"uuid":"499527098","full_name":"AlanD20/aland20.com","owner":"AlanD20","description":null,"archived":false,"fork":false,"pushed_at":"2023-07-07T16:22:40.000Z","size":1061,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2023-07-07T17:25:01.000Z","etag":null,"topics":["nextjs","prisma","sqlite","tailwindcss","typescript"],"latest_commit_sha":null,"homepage":"https://aland20.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AlanD20.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}},"created_at":"2022-06-03T13:44:32.000Z","updated_at":"2023-07-07T17:25:01.001Z","dependencies_parsed_at":"2023-01-23T20:46:47.993Z","dependency_job_id":null,"html_url":"https://github.com/AlanD20/aland20.com","commit_stats":null,"previous_names":[],"tags_count":4,"template":null,"template_full_name":null,"purl":"pkg:github/AlanD20/aland20.com","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlanD20%2Faland20.com","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlanD20%2Faland20.com/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlanD20%2Faland20.com/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlanD20%2Faland20.com/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AlanD20","download_url":"https://codeload.github.com/AlanD20/aland20.com/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlanD20%2Faland20.com/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276526913,"owners_count":25657955,"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-23T02:00:09.130Z","response_time":73,"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":["nextjs","prisma","sqlite","tailwindcss","typescript"],"created_at":"2025-09-23T06:17:12.458Z","updated_at":"2025-09-23T06:17:16.340Z","avatar_url":"https://github.com/AlanD20.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"### AlanD20 Portfolio\n\n---\nDynamic portfolio with support for admin dashboard to control the website.\n\nTo access the dashboard with the features, you must be authorized. Otherwise, you'll be redirected to the main page by taking advantage of Nextjs v12 middlewares.\n\n---\n\n### Features\n\n- You can manage **Projects**, **Skills**, **Tags**, **FAQs** such as *Add*, *Edit*, *Delete*.\n- Validations and using Node mailer in Contact form.\n- The API routes that manages the website are protected. Which means, you have to be authorized to have access to the api routes.\n- Each content has `Priority` field which helps you give a content high ordering, to be rendered in the website.\n- [Custom Directives](src/modules/CustomDirectives/README.md) are custom words that generate HTML tags for contents written with it. This process makes it easier to give styles and write the way you want to be rendered in the website. Custom Directives source code can be found in the [modules](src/modules/CustomDirectives/) folder. This feature is used in *Project*, *FAQ* descriptions.\n- You can find your Github ID through this website: [Find Github ID](http://caius.github.io/github_id/)\n\n---\n\n### Deployment\n\n1. Install the packages\n\n    ```bash\n    pnpm install\n    ```\n\n2. You may generate a secret key for `NEXTAUTH_SECRET` environment variable using the following command. But, make sure you have installed `openssl`.\n\n    ```bash\n    pnpm generate:secret\n    ```\n\n3. The following files must be changed during deployment in production:\n\n    - [config.ts](src/config/app.ts) -\u003e Host \u0026 Allowed Origins For API Access\n    - [.env](.env) -\u003e Environment Variables\n\n4. Generate the database schema with default seeding\n\n    ```bash\n    pnpm db:reset\n    ```\n\n5. Finally, build the project and start pm2 config.\n\n    ```bash\n    pnpm build \u0026\u0026 pnpm pm2\n    ```\n\n- For adding new changes, build the project and restart pm2 by passing our application name which we set in `pm2.json` file.\n\n    ```bash\n    pnpm build \u0026\u0026 pm2 restart nextjs-portfolio\n    ```\n\n---\n\n### Development: Setup\n\n1. Install packages\n\n    ```bash\n    pnpm install\n    ```\n\n2. Define environment variables in .env file with your local environment. You can use .env.sample as a starting point\n3. Run the dev server\n\n    ```bash\n    pnpm dev\n    ```\n\n4. And everything should work :) Don't forget to checkout [src/config](/src/config/) directory to configure the app.\n\n- **Note:** Do not forget to restart the server when you make changes in .env file.\n\n#### Useful Commands\n\n- postcss commands.\n\n  ```bash\n  pnpm css:dev # Watch for changes during css files for development\n  pnpm css:prod # build minified css files for production\n  ```\n\n- Any changes in Prisma schema, you must push it to the database and generate the `prisma/client` file. The following command does both job at once.\n\n    ```bash\n    pnpm db:push\n    ```\n\n- Prisma commands.\n\n    ```bash\n    pnpm db:reset # Create + Seed with base data\n    pnpm db:push # Create only\n    pnpm db:seed # Seed only\n    pnpm prisma:studio # Start Prisma studio server\n    ```\n\n- You may want to manually run prettier format.\n\n    ```bash\n    pnpm format\n    ```\n\n- You may want to generate a secret key for *NEXTAUTH_URL*. You need openssl installed on the machine.\n\n    ```bash\n    pnpm generate:secret\n    ```\n\n---\n\n### Contribution\n\nIf you have anything to add or fix, feel free to open a new pull request.\n\n---\n\n### License\n\nThis repository is under [GNU General Public License v3](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faland20%2Faland20.com","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faland20%2Faland20.com","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faland20%2Faland20.com/lists"}