{"id":21254178,"url":"https://github.com/artur24814/giftscenter","last_synced_at":"2026-05-15T12:35:40.969Z","repository":{"id":195749384,"uuid":"577926611","full_name":"artur24814/GiftsCenter","owner":"artur24814","description":"Website for managing events, creating a gift🎁 list, inviting friends.","archived":false,"fork":false,"pushed_at":"2022-12-26T21:53:55.000Z","size":1889,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-15T06:17:21.540Z","etag":null,"topics":["flask","python"],"latest_commit_sha":null,"homepage":"","language":"Python","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/artur24814.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}},"created_at":"2022-12-13T21:09:26.000Z","updated_at":"2023-03-27T08:15:20.000Z","dependencies_parsed_at":"2023-09-19T12:54:06.131Z","dependency_job_id":null,"html_url":"https://github.com/artur24814/GiftsCenter","commit_stats":null,"previous_names":["artur24814/giftscenter"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/artur24814/GiftsCenter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/artur24814%2FGiftsCenter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/artur24814%2FGiftsCenter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/artur24814%2FGiftsCenter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/artur24814%2FGiftsCenter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/artur24814","download_url":"https://codeload.github.com/artur24814/GiftsCenter/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/artur24814%2FGiftsCenter/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264952158,"owners_count":23688027,"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":["flask","python"],"created_at":"2024-11-21T03:54:30.402Z","updated_at":"2026-05-15T12:35:35.943Z","avatar_url":"https://github.com/artur24814.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GiftsCenter\n\u003chr\u003e\n\n\u003cimg src=\"https://res.cloudinary.com/practicaldev/image/fetch/s--yfF3_q8k--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/f0i5oszdj3gwk686xuc0.JPG\"\u003e\n\n## Contents\n * \u003ca href=\"#info\"\u003e\u003cstrong\u003eInfo\u003c/strong\u003e\u003c/a\u003e\u003cp\u003eInformation about the resources used in this project\u003c/p\u003e\n * \u003ca href=\"#GiftsCenter\"\u003e\u003cstrong\u003eGiftsCenter\u003c/strong\u003e\u003c/a\u003e\u003cp\u003egift list website\u003c/p\u003e\n * \u003ca href=\"#clone_project\"\u003e\u003cstrong\u003eClone and Run a Flask Project\u003c/strong\u003e\u003c/a\u003e\u003cp\u003ehow run projects in your computer\u003c/p\u003e\n\n\u003chr\u003e\n\n\u003cdetails\u003e\u003csummary id=\"info\" style=\"font-size: 30px;\"\u003e INFO\u003c/summary\u003e\n\u003ch4\u003eInformation about the additional library, external Api used in this project and general information\u003c/h4\u003e\n\n\u003cstrong\u003eFlask\u003c/strong\u003e  is a web framework.\n\n\u003cstrong\u003ePillow\u003c/strong\u003e The Python Imaging Library adds image processing capabilities to your Python interpreter.\n\n\u003cstrong\u003epytest\u003c/strong\u003e For testing application.\n\n\u003cstrong\u003epython-dotenv\u003c/strong\u003e For reads key-value pairs from a .env file and can set them as environment variables. \n\n\u003cstrong\u003ePsycopg2binary\u003c/strong\u003e Psycopg is the most popular PostgreSQL database adapter for the Python programming language. \n\n\u003cstrong\u003eFlask-Mail\u003c/strong\u003e The Flask-Mail extension provides a simple interface to set up SMTP with your Flask application and to send messages from your views and scripts.\n\n\u003c/details\u003e\n\n\u003chr\u003e\n\u003ccenter\u003e\u003ch1 id=\"GiftsCenter\"\u003e GiftsCenter \u003cspan style='font-size:80px;'\u003e\u003cimg src=\"https://img.icons8.com/external-smashingstocks-outline-color-smashing-stocks/66/null/external-gifts-shopping-smashingstocks-outline-color-smashing-stocks.png\"/\u003e\u003c/span\u003e\u003c/h1\u003e\u003c/center\u003e\n\n### You have an important celebration and, as usual, you expect that your guests bring some nonsense 🤬 as a gift? \u003cbr\u003e Or you're going to a party you don't know what to buy for a gift 🤯?\n\n#### That's why the sites like this exists. I present my version written with  using python framework 'Flask' \n\nYou must have an account for normal work on this site. Without it, on this site you can only search for users and actions, but you will not create your own actions or participate in actions.\n\n\u003cimg src=\"https://user-images.githubusercontent.com/97242088/208264559-f97760c6-b175-48d0-9e2b-b2cac4bbf72f.png\" width=\"600\" height=\"150\"\u003e\n\u003cimg src=\"https://user-images.githubusercontent.com/97242088/208264558-9605ce05-c0ee-4181-b2bb-1b85761ae1dd.png\" width=\"600\" height=\"150\"\u003e\n\nOnce you have an account, you can search for a friend or the action itself, but in our case, we will first search for our friend, just enter a few letters from his name.\n\n\u003cimg src=\"https://user-images.githubusercontent.com/97242088/208264803-0ee72dec-a308-49f4-be51-118da3256169.png\" width=\"1000\" height=\"250\"\u003e\n\nIf you found him, click 'add friend'. But now you can't take part in all his actions yet, it would be strange if you can take part in all actions to which you are not invited, wouldn't it 🤪?\u003cbr\u003e\nNow he should make his move.\n\nIf he accepts you as a friend next he will go into his action and select you and press 'add' and now you are officially invited to the party. Now you will receive invitations via email.\u003cbr\u003e\nI use an emulated email server, Python provides one that is very handy that you can start in a second terminal with the following command:\n\n```python -m smtpd -n -c DebuggingServer localhost:8025```\n\nAnd I can see this message in a terminal\n\n\u003cimg src=\"https://user-images.githubusercontent.com/97242088/208265726-2218e599-2c22-4a1d-8823-5dbcc8f53a27.png\"\u003e\n\nNow go to this action and choose the gift 🎁 you are going to buy to get ahead of others! \nNow this gift on the website will be marked as checked and others will not be able to choose it (You can't book more than one gift, but if you try you'll get a message saying it can't be done and the item won't be checked). \nNext you will receive an email with a confirmation and a reminder for this gift. Don't worry no one will know what you choose and if you choose anything at all, complete anonymity ⛔️\n\n\u003cimg src=\"https://user-images.githubusercontent.com/97242088/208266001-17c44f32-5957-469a-9f28-da310f8e3c66.png\" width=\"700\" height=\"400\"\u003e\n\n\u003cimg src=\"https://user-images.githubusercontent.com/97242088/208265593-3e4aa70c-60f8-4a61-98c8-f184c24da387.png\" alt=\"example item chosen\" width=\"500\" height=\"400\"\u003e\n\nOk, now we create our action and invite friends, we choose a picture, and date (must be later like today otherwise you will receive a message). You shouldn't choose all your friends at once, you can add them at any time.\n\n\u003cimg src=\"https://user-images.githubusercontent.com/97242088/208266701-f9b45457-fd9e-441a-b685-9ff99cdd8068.png\" width=\"700\" height=\"400\"\u003e\n\n\u003cimg src=\"https://user-images.githubusercontent.com/97242088/208266711-f1a51d76-872c-4d1b-be29-c2f17d0e3b1c.png\" alt=\"example ms invited\" width=\"500\" height=\"430\"\u003e\n\nGreat, all invited people have received invitations, now you are sure that you will not receive nonsense for a gift wait for guests and have a nice time 🥳.\n\n\u003ccenter\u003e\u003ch2 id=\"clone_project\"\u003eClone and Run a Project\u003c/h2\u003e\u003c/center\u003e\n\nBefore diving let’s look at the things we are required to install in our system.\n\nTo run Flask prefer to use the Virtual Environment\n\n`pip install virtualenv`\n\nMaking and Activating the Virtual Environment:-\n\n`virtualenv “name as you like”`\n\n`source env/bin/activate`\n\nInstalling Flask:-\n\n`pip install Flask`\n\nNow, we need to clone project from Github:-\n\u003cp\u003eAbove the list of files, click Code.\u003c/p\u003e\n\u003cimg src=\"https://docs.github.com/assets/cb-20363/images/help/repository/code-button.png\"\u003e\n\nCopy the URL for the repository.\n\u003cul\u003e\n\u003cli\u003eTo clone the repository using HTTPS, under \"HTTPS\", click\u003c/li\u003e\n\u003cli\u003eTo clone the repository using an SSH key, including a certificate issued by your organization's SSH certificate authority, click SSH, then click\u003c/li\u003e\n\u003cli\u003eTo clone a repository using GitHub CLI, click GitHub CLI, then click\u003c/li\u003e\n\u003c/ul\u003e\n\u003cimg src=\"https://docs.github.com/assets/cb-33207/images/help/repository/https-url-clone-cli.png\"\u003e\n\nOpen Terminal.\n\nChange the current working directory to the location where you want the cloned directory.\n\nType git clone, and then paste the URL you copied earlier.\n\n`$ git clone https://github.com/YOUR-USERNAME/YOUR-REPOSITORY`\n\nPress Enter to create your local clone.\n\n```\n$ git clone https://github.com/YOUR-USERNAME/YOUR-REPOSITORY\n\u003e Cloning into `Spoon-Knife`...\u003cbr\u003e\n\u003e remote: Counting objects: 10, done.\n\u003e remote: Compressing objects: 100% (8/8), done.\n\u003e remove: Total 10 (delta 1), reused 10 (delta 1)\n\u003e Unpacking objects: 100% (10/10), done.\n```\n\nInstall the project dependencies:\n\n`pip install -r requirements.txt`\n\ncreate `.env` in linux  type `touch .env`\n\nopen this file and type (it is information about your postgres user):\n```python\nDB = 'flask_database'\nDB_USER = \"Your_user\"\nDB_PASSWORD = \"your_password\"\nDB_HOST = \"127.0.0.1\"\n```\n\nConnect with database\n\n`flask --app core init-db`\n\nRun local python message server\n\n`python -m smtpd -n -c DebuggingServer localhost:8025`\n\u003chr\u003e\n\n\u003cstrong\u003eIf you prefer to have emails sent for real, you need to use a real email server.\u003c/strong\u003e\nIf you have one, then you just need to set the MAIL_SERVER, MAIL_PORT, MAIL_USE_TLS, MAIL_USERNAME and MAIL_PASSWORD environment variables for it. \nIf you want a quick solution, you can use a Gmail account to send email, type this in `.env`:\n\n```python\nMAIL_SERVER='smtp.gmail.com'\nMAIL_USERNAME='your_email@gmail.com'\nMAIL_PASSWORD='your_password'\n```\nNext in `core/__init__.py` instead of \n```python\napp.config['MAIL_SERVER'] = 'localhost'\napp.config['MAIL_PORT'] = 8025\n```\ntype\n```python\nfrom dotenv import load_dotenv\nimport os\n\nload_dotenv()\napp.config['MAIL_SERVER']=os.getenv('MAIL_SERVER')\napp.config['MAIL_PORT'] = 465\napp.config['MAIL_USERNAME'] = os.getenv('MAIL_USERNAME')\napp.config['MAIL_PASSWORD'] = os.getenv('MAIL_PASSWORD')\napp.config['MAIL_USE_TLS'] = False\n```\n\u003chr\u003e\n\n\nto start the development server\n\n`flask --app core --debug run`\n\nand open `127.0.0.1:5000` on your browser to view the app.\n\nrun tests type\n\n`pytest`\n\nHave fun\n\u003cp style=\"font-size:100px\"\u003e\u0026#129409;\u003c/p\u003e\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fartur24814%2Fgiftscenter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fartur24814%2Fgiftscenter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fartur24814%2Fgiftscenter/lists"}