{"id":17356571,"url":"https://github.com/emoore29/quick-links","last_synced_at":"2025-11-09T08:04:41.812Z","repository":{"id":219692795,"uuid":"749659517","full_name":"emoore29/quick-links","owner":"emoore29","description":"A link-sharing app where users can create a profile and share social media links and more (WIP).","archived":false,"fork":false,"pushed_at":"2024-02-27T01:53:15.000Z","size":589,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-23T19:31:04.382Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/emoore29.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-01-29T06:09:29.000Z","updated_at":"2024-01-29T08:36:31.000Z","dependencies_parsed_at":"2024-01-29T07:56:25.126Z","dependency_job_id":"ca436898-bdda-4a3b-a761-c2b38435a01d","html_url":"https://github.com/emoore29/quick-links","commit_stats":null,"previous_names":["emoore29/quick-links"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/emoore29/quick-links","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emoore29%2Fquick-links","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emoore29%2Fquick-links/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emoore29%2Fquick-links/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emoore29%2Fquick-links/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/emoore29","download_url":"https://codeload.github.com/emoore29/quick-links/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emoore29%2Fquick-links/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":283475141,"owners_count":26841941,"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-11-09T02:00:05.828Z","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":[],"created_at":"2024-10-15T18:57:21.377Z","updated_at":"2025-11-09T08:04:36.805Z","avatar_url":"https://github.com/emoore29.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Quick Links (in development)\n\nThis is a link-sharing app where users can create a profile and share social media links and more.\n\nThis app has been adapted from [Frontend Mentor's challenge](https://www.frontendmentor.io/challenges/linksharing-app-Fbt7yweGsT). [Vercel's fullstack app guide](https://vercel.com/guides/nextjs-prisma-postgres) was used in the initial planning of the app structure; however, this guide uses the pages router and I intend on using the app router.\n\n## Current Development Roadmap\n\n- create next app and create basic frontend\n- set up Vercel Postgres database\n- set up Prisma and create the database schema\n- install and generate Prisma client\n- add CRUD functionality\n- set up authentication with NextAuth\n- add log in functionality\n- add input validations\n- style frontend\n- update roadmap to include additional tasks after major tasks are completed\n\n## Users will be able to:\n\n- Create an account and log in\n- Create, read, update, delete links and see previews in the mobile mockup (details are saved to a database)\n- Receive validations if the links form is submitted without a URL or with the wrong URL pattern for the platform\n- Drag and drop links to reorder them\n- Add profile details like profile picture, first name, last name, and email\n- Receive validations if the profile details form is saved with no first or last name\n- Preview their devlinks profile and copy the link to their clipboard\n- View the optimal layout for the interface depending on their device's screen size\n- See hover and focus states for all interactive elements on the page\n- Customise their links profile theme\n\n## Expected behaviour (from Frontend Mentor)\n\n- Links\n  - Clicking \"Add new link\" will add a new repeater where the user can select the platform to add a link for and add the URL.\n  - Adding a new link should immediately show the platform's link in the mobile mockup illustration even before the form is saved.\n  - When the user clicks \"Save\", the form should validate for the presence of a URL and ensure the URL pattern is correct for the platform (e.g. \"https://www.frontendmentor.io/profile/:username\" for the Frontend Mentor link).\n  - The user should be able to drag and drop by clicking and holding the two-line hamburger icon in the top left of each link repeater.\n  - The mobile mockup illustration isn't shown on tablet and mobile layouts. The user would need to click through to the preview page to see their profile.\n- Profile Details\n  - First name and last name are the only required fields. If no profile picture or email address are present, remove the necessary parts of the mobile mockup or use the person's initials inside the circle where the profile picture would be.\n  - You can use Web APIs like FileReader to handle the image upload. You can do this completely client-side if you're just building the front-end. If you're building full-stack, this is a nice opportunity to integrate with a media hosting service like Cloudinary and practice using their API. Remember to keep your API credentials secret if you choose this route!\n- Preview\n  - Clicking \"Share Link\" should copy the current URL to the user's clipboard and show the relevant toast message shown in the design.\n  - If you're building the project as a full-stack app, ensure only the current user can only see the header with the \"Back to Editor\" and \"Share Link\" call-to-actions if they are the same user as the one in the profile. If they're not, the header should disappear and they shouldn't be able to access the admin area.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femoore29%2Fquick-links","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Femoore29%2Fquick-links","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femoore29%2Fquick-links/lists"}