{"id":20886861,"url":"https://github.com/barkode/storelinks","last_synced_at":"2026-02-06T19:31:27.576Z","repository":{"id":254818261,"uuid":"837581389","full_name":"barkode/storelinks","owner":"barkode","description":null,"archived":false,"fork":false,"pushed_at":"2024-12-20T04:29:49.000Z","size":17744,"stargazers_count":0,"open_issues_count":1,"forks_count":2,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-04-19T16:47:49.068Z","etag":null,"topics":["css3","django","html5","javascript","python"],"latest_commit_sha":null,"homepage":"https://storelinks-ff093b7a4c54.herokuapp.com/","language":"HTML","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/barkode.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":"2024-08-03T11:54:11.000Z","updated_at":"2024-12-20T04:29:52.000Z","dependencies_parsed_at":null,"dependency_job_id":"1f5eafb4-6411-4720-8329-a3f039bed2b7","html_url":"https://github.com/barkode/storelinks","commit_stats":null,"previous_names":["barkode/store-your-media","barkode/storelinks"],"tags_count":0,"template":false,"template_full_name":"Code-Institute-Org/ci-full-template","purl":"pkg:github/barkode/storelinks","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/barkode%2Fstorelinks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/barkode%2Fstorelinks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/barkode%2Fstorelinks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/barkode%2Fstorelinks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/barkode","download_url":"https://codeload.github.com/barkode/storelinks/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/barkode%2Fstorelinks/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29174096,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-06T19:28:14.811Z","status":"ssl_error","status_checked_at":"2026-02-06T19:28:13.420Z","response_time":59,"last_error":"SSL_read: 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":["css3","django","html5","javascript","python"],"created_at":"2024-11-18T08:18:18.650Z","updated_at":"2026-02-06T19:31:27.562Z","avatar_url":"https://github.com/barkode.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# StoreLinks web application\n\n![Main Image](docs/main.png)\n\n[Deployed Link](https://storelinks-ff093b7a4c54.herokuapp.com/)\n\nOur goal is to help users find good content, whether it's movies, series, or music. But add it to your favorites list.\nSo you can watch or listen to your favorite content in the future. The project was created for educational purposes.\n\n\u003cdetails\u003e\n\u003csummary\u003e\n\u003cb\u003eMobile view.\u003c/b\u003e\n\u003c/summary\u003e\n\n![Mobile View](docs/site-on-mobile.png)\n\n\u003c/details\u003e\n\u003cbr/\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\n\u003cb\u003eTablet view.\u003c/b\u003e\n\u003c/summary\u003e\n\n![Tablet View](docs/site-on-tablet.png)\n\n\u003c/details\u003e\n\u003cbr/\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\n\u003cb\u003eDesktop view.\u003c/b\u003e\n\u003c/summary\u003e\n\n![Desktop View](docs/site-on-desktop.png)\n\n\u003c/details\u003e\n\n# Contents\n\n\u003c!-- TOC --\u003e\n* [StoreLinks web application](#storelinks-web-application)\n* [Contents](#contents)\n  * [Agile Methodology](#agile-methodology)\n    * [Overview](#overview)\n    * [MoSCoW Prioritization](#moscow-prioritization)\n    * [GitHub Projects](#github-projects)\n    * [EPICS](#epics)\n    * [User Stories](#user-stories)\n  * [Website Goals and Objectives](#website-goals-and-objectives)\n  * [Target Audience](#target-audience)\n  * [Wireframes](#wireframes)\n  * [Database Schema](#database-schema)\n  * [Design Choices](#design-choices)\n    * [Typography](#typography)\n    * [Colour Scheme](#colour-scheme)\n    * [Images](#images)\n    * [Responsiveness](#responsiveness)\n  * [Security Measures and Protective Design](#security-measures-and-protective-design)\n    * [User Authentication](#user-authentication)\n    * [Password Management](#password-management)\n    * [Form Validation](#form-validation)\n    * [Database Security](#database-security)\n  * [Features](#features)\n    * [Header](#header)\n    * [Footer](#footer)\n    * [Custom Error Pages](#custom-error-pages)\n  * [Django Administrator page](#django-administrator-page)\n  * [User Authorization form](#user-authorization-form)\n  * [User Registration form](#user-registration-form)\n  * [User profile form](#user-profile-form)\n  * [Future Features](#future-features)\n  * [Deployment](#deployment)\n    * [To deploy the project to Heroku](#to-deploy-the-project-to-heroku)\n      * [**Step 1.** Create a New Heroku App](#step-1-create-a-new-heroku-app)\n      * [**Step 2.** Configure Environment Variables](#step-2-configure-environment-variables)\n      * [**Step 3.** Prepare the Project for Deployment](#step-3-prepare-the-project-for-deployment)\n      * [**Step 4.** Connect Your GitHub Repository to Heroku](#step-4-connect-your-github-repository-to-heroku)\n      * [**Step 5.**  Verify Your Deployment](#step-5-verify-your-deployment)\n    * [To fork the project](#to-fork-the-project)\n    * [To clone the project](#to-clone-the-project)\n  * [Testing](#testing)\n  * [Technology](#technology)\n    * [Languages](#languages)\n    * [Frameworks](#frameworks)\n    * [Python Libraries](#python-libraries)\n    * [Programs](#programs)\n  * [Credits](#credits)\n  * [Disclaimer](#disclaimer)\n\u003c!-- TOC --\u003e\n\n## Agile Methodology\n\n### Overview\n\n[Agile methodology](https://en.wikipedia.org/wiki/Agile_software_development) is a project management approach that\nemphasizes flexibility, collaboration, and iterative progress towards a well-defined goal. It is particularly effective\nin software development where requirements and solutions evolve through the collaborative effort of self-organizing\ncross-functional teams. Agile methodologies aim to deliver small, incremental changes in a product to improve quality\nand adaptability to changing needs.\n\n### MoSCoW Prioritization\n\nThe [MoSCoW prioritization technique](https://en.wikipedia.org/wiki/MoSCoW_method) is used to determine the importance\nof various features and tasks in a project. This method categorizes features into four groups: Must Have, Should Have,\nCould Have, and Won't Have. This helps in effective time management and ensures that the most critical functionalities\nare delivered first.\n\n### GitHub Projects\n\nUsing GitHub Projects, tasks are managed and progress tracked through project boards. Each board will represent an EPIC,\nwith columns for tasks, their statuses (To Do, In Progress, On Hold, Done, Bugs). Issue labels include the user,\nprioritization and sprints.\n\n![Kanban Board](docs/kanban.png)\n\n### EPICS\n\nEpic is a large body of work that is broken down into user stories. Each Epic in this project represents a key aspect of\nthe platform's development and ensures comprehensive coverage of the required functionalities.\n\n- [EPIC 1](https://github.com/barkode/storelinks/issues/4)\n- [EPIC 2](https://github.com/barkode/storelinks/issues/5)\n- [EPIC 3](https://github.com/barkode/storelinks/issues/20)\n- [EPIC 4](https://github.com/barkode/storelinks/issues/22)\n- [EPIC 5](https://github.com/barkode/storelinks/issues/24)\n- [EPIC 6](https://github.com/barkode/storelinks/issues/25)\n- [EPIC 7](https://github.com/barkode/storelinks/issues/43)\n\n### User Stories\n\nWith an emphasis on delivering a seamless user experience, the goal of this project is to provide a comprehensive\nplatform that serves both visitors and registered users. The platform will allow for the development and maintenance of\ncontent, present developer profiles, and provide opportunities for interaction. The following user stories outline the\nessential functionalities and the rationale behind them.\n\n- As a registered user, I want to be able to log in and out of my account so that I can use the platform.\n- As a registered user, I want to manage my profile so that I have control of the information held on the platform.\n- As a registered user, I want to be able to comment on posts so that provide feedback to authors.\n- As a registered user, I want to be able to delete and edit comments so that I can control my engagement on the\n  platform.\n- As an Administrator, I want the ability to perform all CRUD (Create, Read, Update, Delete) operations so that manually\n  manage, control and edit content.\n- As an Administrator, I want to approve comments and posts so that I can ensure content quality and appropriateness\n  before it is published.\n\n## Website Goals and Objectives\n\nWebsite Objectives:\n\n- User Link Storage and Management:\n\n  Implement features that allow users to easily save, categorize, and manage their links related to movies and music.\n\n\n- Integration of Social Features:\n\n  Enable social sharing, commenting, and rating systems to encourage user interaction and community growth.\n\n\n- Content Aggregation:\n\n  Aggregate content from various trusted sources, including news, reviews, and articles, to provide a one-stop-shop for\n  movie and music enthusiasts.\n\n\n- Search and Filter Functionality:\n\n  Develop robust search and filtering tools to help users quickly find specific information or discover new content\n  based on their interests.\n\n\n- Regular Updates and Fresh Content:\n\n  Continuously update the site with the latest news, reviews, and trends in the movie and music industries to keep the\n  content fresh and relevant.\n\n\n- Mobile Optimization:\n\n  Ensure the website is fully responsive and optimized for mobile devices, allowing users to access and manage their\n  links on the go.\n\n\n- Analytics and User Feedback:\n\n  Implement analytics to track user behavior and preferences, and gather user feedback to continually improve the\n  website’s features and content.\n\nThese goals and objectives would guide the development and operation of the website, ensuring it meets the needs of its\ntarget audience while achieving its purpose as a valuable online resource.\n\n## Target Audience\n\nA website for storing links and reading information about movies and music could target a diverse audience. The primary\ntarget audience may include:\n\n- Movie and Music Enthusiasts:\n\n  Individuals passionate about films and music, who frequently seek out new information, reviews, recommendations, and\n  discussions about their favorite works.\n\n\n- Critics and Reviewers:\n\n  Professionals or hobbyists who write reviews and articles about movies and music may use the site to store links to\n  sources, interviews, or news.\n\n\n- Students and Researchers:\n\n  Those conducting research in the fields of culture, film, music, or media may use the site as a tool to store and\n  organize their materials.\n\n\n- Bloggers and Content Creators:\n\n  They can save and categorize links to resources that will be useful for content creation.\n\n\n- Collectors and Enthusiasts:\n\n  People who are passionate about collecting movies, music, or other media content may use the site to organize their\n  digital archive.\n\n\n- Curators and Event Organizers:\n\n  Cultural event curators may store resources for preparing exhibitions, festivals, or other events related to film and\n  music.\n\nOverall, the target audience for the site will consist of individuals who are deeply interested in culture, seek\ninformation, and want to store it in a convenient format for future use.\n\n[Back to top](#contents)\n\n## Wireframes\n\nThe wireframes for the platform provide a visual representation of the layout and structure of the application. They\noutline the placement of key elements such as navigation menus, user profiles, content areas, and interactive features.\nThe wireframes ensure a cohesive and intuitive user interface, guiding the design and development process. After the\nextensive testing was conducted, naturally there are some deviations from wireframes in the live version of the\nplatform.\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eMobile Wireframes\u003c/b\u003e\u003c/summary\u003e\n\n![Mobile Wireframes](docs/warframes/mw-1.png)\n![Mobile Wireframes](docs/warframes/mw-2.png)\n![Mobile Wireframes](docs/warframes/mw-3.png)\n![Mobile Wireframes](docs/warframes/mw-4.png)\n![Mobile Wireframes](docs/warframes/mw-5.png)\n![Mobile Wireframes](docs/warframes/mw-6.png)\n\n\u003c/details\u003e\n\u003cbr/\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eDesktop Wireframes\u003c/b\u003e\u003c/summary\u003e\n\n![Desktop Wireframes](docs/warframes/dw-4.png)\n![Desktop Wireframes](docs/warframes/dw-2.png)\n![Desktop Wireframes](docs/warframes/dw-3.png)\n![Desktop Wireframes](docs/warframes/dw-1.png)\n![Desktop Wireframes](docs/warframes/dw-5.png)\n![Desktop Wireframes](docs/warframes/dw-6.png)\n\n\u003c/details\u003e\n\n[Back to top](#contents)\n\n## Database Schema\n\nThe database schema outlines the structure and relationships between key tables for the platform. The **User** table\nstores basic user information and authentication details. The **Profile** and **DevProfile** tables extend user details\nwith personal information, bios, and links. The **Category** table categorizes content, while the **Post** table manages\nuser-generated content with fields for title, content, author, and metadata. The **Comment** table handles comments on\nposts, including author information. These tables are designed to ensure efficient data management and robust user\ninteractions on the platform.\n\nThis schema was generated using [drawsql.app](https://drawsql.app/).\n\nAll the movie information was taken from\nthe [example database json file](https://github.com/toedter/movies-demo/blob/master/backend/src/main/resources/static/movie-data/movies-250.json ).\nBased on the data from this file, models for movies and genres were built.\n\n\u003cdetails\u003e\n\u003csummary\u003e\n\u003cb\u003eThe database scheme that was created during project planning.\u003c/b\u003e\n\u003c/summary\u003e\n\n![Database Schema](docs/base-sql-database-structure-before.png)\n\n\u003c/details\u003e\n\u003cbr/\u003e\n\n\n\u003cdetails\u003e\n\u003csummary\u003e\n\u003cb\u003eDatabase scheme after creating MVP.\u003c/b\u003e\n\u003c/summary\u003e\n\n![Database Schema](docs/base-sql-database-structure-after.png)\n\n\u003c/details\u003e\n\u003cbr/\u003e\n\n[Back to top](#contents)\n\n## Design Choices\n\nThe site is made in black and white with color accents on some elements. A simple design with thin lines and not many\nelements on the page was chosen.\nThe design of the site is based on\na [template that can be downloaded for free](https://bootstrapbrain.com/template/free-bike-repair-bootstrap-html-website-template-presta/).\n\n### Typography\n\n[Inter](https://fonts.google.com/specimen/Inter) is one of the world's most used typefaces with applications ranging\nfrom computer interfaces, advertising \u0026 airports, to NASA instrumentation \u0026 medical equipment.\n\n![Inter font](docs/font.png)\n\n### Colour Scheme\n\n![Color scheme](docs/pallete.png)\n\n[Back to top](#contents)\n\n### Images\n\nAll movie posters are downloaded from a remote server. The paths to these images were taken from the example database.\n\n[Back to top](#contents)\n\n### Responsiveness\n\nThe site was developed using the Bootstrap 5 CSS framework. Bootstrap includes six default breakpoints, sometimes\nreferred to as grid tiers, for building responsively. These breakpoints can be customized if you’re using our source\nSass files.\n\n![Breakpoints](docs/brackpoints.png)\n\n[Back to top](#contents)\n\n## Security Measures and Protective Design\n\n### User Authentication\n\n- New user registration and existing user login were done using standard Django tools.\n\n### Password Management\n\n- Utilize Django's built-in tools for password management to securely hash and store passwords.\n\n- Implement robust password policies to strengthen the security of user accounts.\n\n### Form Validation\n\nValidation of forms is performed both on the client side using the built-in capabilities of the browser (html), and on\nthe server side using the database.\n\n### Database Security\n\nAll important information for database access is stored in a virtual environment. The key files are stored in an .env\nfile. The file itself is added to the list of ignored files.\n\n[Back to top](#contents)\n\n## Features\n\n### Header\n\nSo I used the Bootstrap5 css framework so the site looks good on both mobile and desktop. Implemented a drop-down list\nfor searching movies by category. There is also a search by movie titles, years of release and content.\n\u003cdetails\u003e\u003csummary\u003e\u003cb\u003eHeader Desktop\u003c/b\u003e\u003c/summary\u003e\n\n![header mobile 1](docs/hd-1.png)\n![header mobile 1](docs/hd-2.png)\n![header mobile 1](docs/hd-3.png)\n\n\u003c/details\u003e\u003cbr/\u003e\n\n\u003cdetails\u003e\u003csummary\u003e\u003cb\u003eHeader Mobile\u003c/b\u003e\u003c/summary\u003e\n\n![header mobile 1](docs/hm-1.png)\n![header mobile 1](docs/hm-2.png)\n![header mobile 1](docs/hm-3.png)\n\n\u003c/details\u003e\u003cbr/\u003e\n\n### Footer\n\n\u003cdetails\u003e\u003csummary\u003e\u003cb\u003eFooter\u003c/b\u003e\u003c/summary\u003e\n\n![Footer mobile](docs/fm-1.png)\n\n![Footer Desktop](docs/fd-1.png)\n\n\u003c/details\u003e\u003cbr/\u003e\n\n### Custom Error Pages\n\nMade pages for errors 404, 403, 500. Used a simple design. The user is presented with an error message and a return home\nbutton.\n\n\u003cdetails\u003e\u003csummary\u003e\u003cb\u003eCustom error pages\u003c/b\u003e\u003c/summary\u003e\n\n![Page 404](docs/404.png)\n\n\u003c/details\u003e\u003cbr/\u003e\n\n[Back to top](#contents)\n\n## Django Administrator page\n\n\u003cdetails\u003e\u003csummary\u003e\u003cb\u003eAdmin panel\u003c/b\u003e\u003c/summary\u003e\n\n![Admin panel](docs/ap-1.png)\n\n\u003c/details\u003e\u003cbr/\u003e\n\n[Back to top](#contents)\n\n## User Authorization form\n\n\u003cdetails\u003e\u003csummary\u003e\u003cb\u003eDesktop form\u003c/b\u003e\u003c/summary\u003e\n\n![Registration](docs/d-login.png)\n\n\u003c/details\u003e\u003cbr/\u003e\n\n\u003cdetails\u003e\u003csummary\u003e\u003cb\u003eMobile form\u003c/b\u003e\u003c/summary\u003e\n\n![Registration](docs/m-login.png)\n\n\u003c/details\u003e\u003cbr/\u003e\n\n[Back to top](#contents)\n\n## User Registration form\n\n\u003cdetails\u003e\u003csummary\u003e\u003cb\u003eDesktop form\u003c/b\u003e\u003c/summary\u003e\n\n![Registration](docs/d-reg.png)\n\n\u003c/details\u003e\u003cbr /\u003e\n\n\u003cdetails\u003e\u003csummary\u003e\u003cb\u003eMobile form\u003c/b\u003e\u003c/summary\u003e\n\n![Registration](docs/m-reg.png)\n\n\u003c/details\u003e\u003cbr/\u003e\n\n[Back to top](#contents)\n\n## User profile form\n\n\u003cdetails\u003e\u003csummary\u003e\u003cb\u003eDesktop\u003c/b\u003e\u003c/summary\u003e\n\n![Profile](docs/d-up.png)\n\n\u003c/details\u003e\u003cbr/\u003e\n\n\u003cdetails\u003e\u003csummary\u003e\u003cb\u003eMobile\u003c/b\u003e\u003c/summary\u003e\n\n![Profile](docs/m-up.png)\n\n\u003c/details\u003e\u003cbr/\u003e\n\n[Back to top](#contents)\n\n## Future Features\n\n- Add the ability to add movies to your favorites list.\n- Add an option for users to rate.\n- Add the ability to create your own playlists.\n- Add a music library.\n- Add synchronization with API services.\n\n[Back to top](#contents)\n\n## Deployment\n\n### To deploy the project to Heroku\n\nFollow these steps to deploy your Django project to Heroku from VS Code:\n\n#### **Step 1.** Create a New Heroku App\n\n- Access the Heroku Dashboard: Log in to your Heroku account and access the dashboard.\n- Create a New App: Click on the New button in the top-right corner of the dashboard and select Create new app from the\n  dropdown menu.\n- App Name and Region: Enter a unique name for your app and choose a region closest to you (EU or USA). Click Create App\n  to create the app.\n\n#### **Step 2.** Configure Environment Variables\n\n- Reveal Config Vars: From the new app Settings, click Reveal Config Vars.\n- Set Environment Variables: Set your environment variables as follows:\n    * `CLOUDINARY_URL`: Insert your own Cloudinary API key here.\n    * `DATABASE_URL`: Insert your own ElephantSQL database URL here.\n    * `DISABLE_COLLECTSTATIC`: Set to 1 for temporary purposes, and remove it for the final deployment.\n    * `SECRET_KEY`: This can be any random secret key.\n\n#### **Step 3.** Prepare the Project for Deployment\n\n- Create a `requirements.txt` File: This file lists all the dependencies required by your project. You can install the\n  project's requirements using `pip3 install -r requirements.txt`. If you have your own packages installed, update the\n  `requirements.txt` file using `pip3 freeze --local \u003e requirements.txt`.\n- Create a `Procfile`: This file specifies the commands Heroku should run to start your app. Create the Procfile using\n  `echo web: gunicorn app_name.wsgi \u003e Procfile`. Replace `app_name` with the name of your primary Django app, which is\n  the folder where `settings.py` is located.\n\n#### **Step 4.** Connect Your GitHub Repository to Heroku\n\n- Automatic Deployment: Select Automatic Deployment from the Heroku app settings to automatically deploy your app\n  whenever you push changes to your GitHub repository.\n- Manual Deployment: Alternatively, you can connect your GitHub repository to Heroku manually using the Terminal/CLI:\n- Login to Heroku: Run `heroku login -i` to log in to your Heroku account.\n- Set the Remote for Heroku: Run `heroku git:remote -a app_name` to set the remote for Heroku. Replace `app_name` with\n  your app name.\n- Push to Heroku: After performing the standard Git add, commit, and push to GitHub, you can now type\n  `git push heroku main` to deploy your app.\n\n#### **Step 5.**  Verify Your Deployment\n\n- Open App: Once your app is deployed, you can open it by clicking on the Open App button in the Heroku dashboard. This\n  will open your app in a web browser.\n- Verify App: Verify that your app is running correctly by checking for any errors or issues.\n\n[Back to top](#contents)\n\n### To fork the project\n\nForking the **GitHub** repository allows you to create a duplicate of a local repository. This is done so that\nmodifications to the copy can be performed without compromising the original repository.\n\n- Log in to **GitHub**.\n\n- Locate the repository.\n\n- Click to open it.\n\n- The fork button is located on the right side of the repository menu.\n\n- To copy the repository to your **GitHub** account, click the button.\n\n### To clone the project\n\n- Log in to **GitHub**.\n\n- Navigate to the main page of the repository and click **Code**.\n\n- Copy the **URL** for the repository.\n\n- Open your local **IDE**.\n\n- Change the current working directory to the location where you want the cloned directory.\n\n- Type git clone, and then paste the **URL** you copied earlier.\n\n- Press **Enter** to create your local clone.\n\n_Any changes required to the website, they can be made, committed and pushed to GitHub._\n\n[Back to top](#contents)\n\n## Testing\n\nTesting summary and results can be found in [TESTING.md](TESTING.md) file.\n\n## Technology\n\n### Languages\n\n- [Python](https://www.python.org/)\n- [Markdown](https://en.wikipedia.org/wiki/Markdown)\n- [HTML](https://developer.mozilla.org/en-US/docs/Glossary/HTML5 \"HTML\")\n- [CSS](https://developer.mozilla.org/en-US/docs/Web/CSS \"CSS\")\n- [JS](https://developer.mozilla.org/en-US/docs/Web/JavaScript \"JS\")\n\n### Frameworks\n\n- [Django](https://www.djangoproject.com/): Django is the main Python framework used in the development of this project.\n  It provides a robust and scalable architecture for building web applications.\n- [Bootstrap](https://getbootstrap.com/): Bootstrap is the main CSS framework used in the development of this project.\n  With its help, it was possible to create a simple and convenient program design. Also, with its help, it was possible\n  to realize a good look of the web application on screens of different sizes.\n\n### Python Libraries\n\n- [Django-allauth](https://django-allauth.readthedocs.io/en/latest/installation.html): Authentication library used to\n  create user accounts, providing features such as registration, login, and social authentication.\n- [Crispy Forms](https://django-crispy-forms.readthedocs.io/en/latest/): Used to manage Django forms, making form\n  rendering in templates simpler and more elegant.\n\n### Programs\n\n- [visily](https://app.visily.ai/) - ai tool to generate wireframe images.\n- [Balsamiq](https://balsamiq.com/): Wireframing tool used to generate wireframe images, allowing for quick and easy\n  visualization of the application's layout and design.\n- [Bootstrap 5](https://getbootstrap.com/docs/45/getting-started/introduction/): CSS framework used for developing\n  responsiveness and styling, offering a wide range of pre-designed components and utilities.\n- [Chrome Dev Tools](https://developer.chrome.com/docs/devtools/): Used for overall development and tweaking, including\n  testing responsiveness, debugging, and performance profiling.\n- [Cloudinary](https://cloudinary.com/): Image hosting service used to upload and manage images, providing features such\n  as image optimization, transformation, and delivery.\n- [Coolors](https://coolors.co/): Used to create a color palette, offering tools for generating, exploring, and\n  customizing color schemes for web design.\n- [Database Schema](https://dbdiagram.io/): database management tool used for creating and managing databases, providing\n  features such as schema design, data modeling, and SQL querying.\n- [Favicon](https://favicon.io/): Used to create the favicon, providing a simple tool for generating favicons for web\n  applications.\n- [Font Awesome](https://fontawesome.com/): Used for icons in the information bar, providing a wide range of\n  high-quality, customizable icons for web development.\n- [GitHub](https://github.com/): Used for version control and as an agile tool, facilitating collaborative development,\n  code review, and project management.\n- [Google Fonts](https://fonts.google.com/): Used to import and alter fonts on the page, offering a vast collection of\n  free, open-source fonts for use in web projects.\n- [Heroku](https://dashboard.heroku.com/login): Cloud-based platform used for deploying web applications. It offers easy\n  deployment, scaling, and management of applications in the cloud environment.\n- [Jshint](https://jshint.com/): Used to validate JavaScript code, helping identify potential errors and maintain code\n  quality.\n- [PEP8 Online](http://pep8online.com/): PEP8 Online is used to validate all Python code against the PEP 8 style guide,\n  promoting code readability and consistency.\n- [PostgreSQL](https://dbs.ci-dbs.net/): CI designed the database tool for this project. It is a powerful relational\n  database management system.\n- [Tables Generator](https://www.tablesgenerator.com/markdown_tables): Used to convert Excel testing tables to Markdown\n  format, simplifying the process of creating and formatting tables for documentation purposes.\n- [TOC Generator](https://ecotrust-canada.github.io/markdown-toc/): Used to generate table of contents for Markdown\n  files, providing a convenient way to organize and navigate large documents.\n- [W3C](https://www.w3.org/): Used for HTML \u0026 CSS validation, ensuring that the project's code complies with web\n  standards and is error-free.\n- [WAVE](https://webaim.org/resources/contrastchecker/): Used for accessibility testing, providing tools to check for\n  accessibility issues such as color contrast and semantic structure.\n\n[Back to top](#contents)\n\n## Credits\n\n- Feedback, advice and support:\n\n\n- Insights content and visuals:\n\n    - [Perplexity](https://www.perplexity.ai/)\n    - [ChatGPT](https://chatgpt.com/)\n    - [phind](https://www.phind.com/)\n\n\n- Learning content:\n\n    - [CodePen](https://codepen.io/pen/)\n    - [Automated Testing Tutorial](https://www.youtube.com/watch?v=qwypH3YvMKc\u0026list=PLbpAWbHbi5rMF2j5n6imm0enrSD9eQUaM)\n    - [Django Documentation](https://docs.djangoproject.com/en/4.2/)\n    - [Boostrap Docs](https://getbootstrap.com/docs/5.3/getting-started/introduction/)\n    - [Hana Belay Articles](https://dev.to/earthcomfy/creating-a-django-registration-login-app-part-i-1di5)\n\n- Debugging Issues:\n\n    - [StackOverflow](https://stackoverflow.com/ \"StackOverflow\")\n    - [Project Portfolio-4 channel on Slack](https://slack.com/intl/en-ie/ \"Slack\")\n    - [Django Forum](https://forum.djangoproject.com/)\n\n## Disclaimer\n\n[Back to top](#contents)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbarkode%2Fstorelinks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbarkode%2Fstorelinks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbarkode%2Fstorelinks/lists"}