{"id":13818932,"url":"https://github.com/drj17/Annotator","last_synced_at":"2025-05-16T04:31:52.594Z","repository":{"id":45136288,"uuid":"88376561","full_name":"drj17/Annotator","owner":"drj17","description":"Genius clone using a rails backend and react frontend","archived":false,"fork":false,"pushed_at":"2022-01-05T23:55:11.000Z","size":5723,"stargazers_count":21,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-11-19T18:45:04.474Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Ruby","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/drj17.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}},"created_at":"2017-04-15T22:02:40.000Z","updated_at":"2024-06-15T00:08:13.000Z","dependencies_parsed_at":"2022-09-24T20:22:27.707Z","dependency_job_id":null,"html_url":"https://github.com/drj17/Annotator","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drj17%2FAnnotator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drj17%2FAnnotator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drj17%2FAnnotator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drj17%2FAnnotator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/drj17","download_url":"https://codeload.github.com/drj17/Annotator/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254469015,"owners_count":22076411,"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","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-08-04T08:00:35.978Z","updated_at":"2025-05-16T04:31:51.971Z","avatar_url":"https://github.com/drj17.png","language":"Ruby","funding_links":[],"categories":["Happy Exploring 🤘"],"sub_categories":[],"readme":"# Annotator\n\n[Annotator Live Demo](http://annotator.me)\n\nAnnotator is a full-stack web application inspired by Genius. It allows\nusers to add annotations to lyrics and view other users explanations.\n\nAnnotator is built with a Ruby on Rails backend, which utilizes a PostgreSQL\ndatabase, and uses React.js with a Redux framework on the frontend.\n\n## Features \u0026 Implementation\n\n### Songs\n\nSongs are stored in the database with columns for `id`, `lyrics`, `artist`\nand `author_id`.  Any user may view the song lyrics, but to create or delete a song,\nusers must be signed-in.  Users may only delete songs that they have personally added\nto Annotator.  Songs are shown on the homepage, with the top three songs having\na greater presence.\n\n#### Viewing Songs\n\n![index page](http://i.imgur.com/8H1SCfA.png)\n![song show](http://i.imgur.com/qWB6qsh.jpg)\n\nUsers can view song lyrics either by clicking the song on the homepage,\nor utilizing the search feature in the upper-left-hand corner of the page.\n\n![search](https://media.giphy.com/media/l0Iyi9zhbHZs5SyDC/giphy.gif)\n\n#### Adding Songs\n\nUsers can add songs by clicking the \"New Song\" button at the top of the page,\nbelow the logo.  Songs require a title, an artist, and lyrics. Optionally,\nusers can upload album artwork for song that will be saved to Amazon Web Services.\n\n### Annotations\n\nAnnotations are stored in the database with columns for `id`, `song_id`, `author_id`,\n`score`, `start_index`, and `end_index`.  Any user may view annotations but to create,\nedit, or delete annotations the user must be signed in.\n\n\n#### Viewing Annotations\n\nLyrics that have associated annotations will show up with a grey highlighting.\nUsers can click on these lyrics to reveal an annotation on the right hand side of the page.\n\n![view annotation](https://media.giphy.com/media/3ohzdYc0LXLWc8Er3q/giphy.gif)\n\nUsers can vote on annotations using the thumbs-up or thumbs-down icons.  Users can also\ncomment on annotations using the text-field below the annotation.  If the current user\ncreated the annotation, there will be options to edit or delete the annotation.\n\n#### Creating Annotations\n\nUsers can create annotations by selecting text that does not already include\nan annotation.  This will prompt the user to start creating an annotation if\nthey are signed-in, otherwise, it will first prompt the user to login.\n\n![create annotation](https://media.giphy.com/media/l0IxZDgreuGPbdq4U/giphy.gif)\n\n#### Comments\n\nComments are stored in the database with columns for `id`, `commentable_id`,\n`commentable_type`, and `author_id`.\n\n### Viewing Comments\nBoth songs and annotations have comment sections, where users can view the\nmessages let by others, newest first.\n\n### Creating Comments\nBoth songs and annotations have a text field for users to add their comments.\nOn submission the comment will automatically be placed at the top of the comment\nlist\n\n![comments](http://i.imgur.com/OspJwTZ.png)\n\n## Future Directions for the Project\n\nIn addition to Annotators current features, there are more features in the works, including:\n\n### User Profiles\n\nUsers will have profiles pages, where they can upload a profile picture and keep track of\nthe songs and annotations they have submitted. Users will also have a score based on\nthe total number of votes for their annotations\n\n### Song Sorting\n\nGenius sorts the songs on their homepage by the number of view over the last 24 hours.  The feature\nensures a dynamic home page, and I plan on implementing it.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdrj17%2FAnnotator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdrj17%2FAnnotator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdrj17%2FAnnotator/lists"}