{"id":23633378,"url":"https://github.com/SxryxnshS5/FeedForward","last_synced_at":"2025-08-31T09:31:31.044Z","repository":{"id":245744832,"uuid":"819110790","full_name":"SxryxnshS5/FeedForward","owner":"SxryxnshS5","description":"FeedForward is a food sharing website aimed at reducing food waste and fighting hunger by allowing users to create and collect food adverts.","archived":false,"fork":false,"pushed_at":"2024-06-23T20:11:40.000Z","size":3865,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-28T04:51:10.581Z","etag":null,"topics":["bootstrap","flask","python","website"],"latest_commit_sha":null,"homepage":"","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/SxryxnshS5.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-06-23T20:07:06.000Z","updated_at":"2024-08-15T20:47:07.000Z","dependencies_parsed_at":"2024-06-23T21:26:27.248Z","dependency_job_id":"b04894f7-408a-4665-a3dc-ce1860376ded","html_url":"https://github.com/SxryxnshS5/FeedForward","commit_stats":null,"previous_names":["sxryxnshs5/food-donation-flask-website"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SxryxnshS5%2FFeedForward","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SxryxnshS5%2FFeedForward/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SxryxnshS5%2FFeedForward/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SxryxnshS5%2FFeedForward/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SxryxnshS5","download_url":"https://codeload.github.com/SxryxnshS5/FeedForward/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":231586257,"owners_count":18396337,"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":["bootstrap","flask","python","website"],"created_at":"2024-12-28T04:51:14.502Z","updated_at":"2024-12-28T04:51:16.079Z","avatar_url":"https://github.com/SxryxnshS5.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FeedForward\n\n_FeedForward is a food sharing website with the aim to reduce food waste and fight hunger._\n_The goal is hoped to be achieved through the main functionality of creating and collecting food adverts._\n\n_Created by Team 14._\n_Members: Alex Lines, Emmanouel Constantinou, Rebecca Picken, Suryansh Singh, Toby Dook, Tariq Bagaar_\n\n_Repository URL: https://github.com/newcastleuniversity-computing/CSC2033_Team14_23-24_\n\n**Main Functionality:**\n- The user can create an account using their personal details\n- The user can log in to their account, provided that they have created one.\n- Adverts can be created by each user, containing details about their contents, expiry date and location.\n- Users can only delete their own adverts if they wish.\n- All the available adverts are presented in a list form, so that users can view and collect whichever they wish.\n- The available adverts are also listed on a map, with a drop pin indicating each one.\n- Users can message advertisers if questions regarding the adverts arise.\n- Users can view their account details and personal information in the account page.\n- Admins can view all the collected adverts as well as all the active users.\n- Admins can also delete any advert or any user they wish.\n- Admins can view all deleted adverts, whether it was deleted by them or their creator.\n- New admin accounts can only be created by current admins.\n\n\n## Running the program\n\n### Dependencies:\nAll the dependencies can be installed using the **requirements.txt** file.\n  \n### Database:      \nThe device running the program should be hosting a mySQL server. mySQL should be downloaded and installed on the \ndevice and the server should be running constantly. ( For more information: https://dev.mysql.com/doc/refman/8.4/en/installing.html)\n\nAn .env file is required for the database to be created. The reason it is not contained in the files of this project is \nbecause it should contain the user and password of the mySQL host, the values of which are different on each device.\nTo create the file, double-click on the project directory and select New -\u003e File and name it '.env'. Then add the following\ncontents, replacing the 'user' and 'password' placeholders with the appropriate mySQL server username and password.\n        \n        SECRET_KEY = a3f0b27e5d8c49e7bf6a38d9c4e216dc\n        SQLALCHEMY_DATABASE_URI = mysql+mysqlconnector://user:password@localhost:3306/2033foodsharing\n        SQLALCHEMY_ECHO = True\n        SQLALCHEMY_TRACK_MODIFICATIONS = False\n\nThe database must be built using the Python Console and the following commands:\n\n        from app import db\n        from models import init_db\n        init_db()\n\nIf the above commands are executed successfully, the database will be built and should contain one user with the 'admin' role.\n\nIf the above steps are followed successfully, the program can be executed by running the Flask Server (using PyCharm, \nedit configurations -\u003e Add new run configuration -\u003e Flask Server -\u003e Debug Mode ON -\u003e Apply).\n\n## Website Guide\n\nThe interface of the website is considered to be straight-forward and clear to use. However, if there is any uncertainty\nor issue on how to use the website, this guide can be helpful.\n\n### Account Related Actions\n1. **Sign Up**\n\n    To create a new account on the website, follow these steps:\n    \n          1. Navigate to the Sign-Up Page (can be done by clicking on the 'Sign Up' button at the top of the website)\n          2. Fill Out the Form:\n          3. Enter your email, first name, last name, password, date of birth, address, and phone number.\n          4. When finished, click the 'Submit' button at the bottom of the form.\n    \n    If the sign-up is successful, you will be redirected to the **Login** page.\n\n2. **Log In**\n\n    To access your account, you need to log in:\n\n       1. Navigate to the Login Page (can be done by clicking on the 'Login' button at the top of the website)\n       2. Enter your registered email and password.\n       3. Click the 'Log In' button.\n    \n    If the login is successful, you will be redirected to the **Account** page.\n\n3. **Account Page (Account Information)**\n\n    To view you account details, you need to be logged in.\n\n        1. Click on the 'Account' button at the top of the website.\n\n    The **Account** page provides all the personal information you signed up with, as well as all the adverts you have created\n    and collected.\n\n4. **Change Account Details**\n\n   To update your account information:\n\n        1. Navigate to the Account Page (#3)\n        2. Click on the 'Change Details' button underneath the Personal Information table.\n        3. You will be redirected to a Change Details Form.\n        4. You need to fill out the whole form, including the modified and unmodified details.\n        5. Click the 'Submit' button.\n\n   Your account details will be updated, and you will be redirected the **Account** page.\n\n5. **Log Out**\n\n    To log out of your account:\n    \n        1. Click the 'Logout' button at the top of the screen\n    \n    You will be logged out, and you will be redirected to the **Login** page, along with a message confirming that you have been logged out.\n\n6. **Delete Account**\n\n    If you wish to delete your account:\n    \n        1. Navigate to the Account Page (#3)\n        2. Click on the 'Delete Account' button.\n        3. You will be asked if you wish to delete your account, in which you will have the options to click 'Yes' or 'No'.\n        4. Click 'OK' to delete you account.\n        5. Your account will be deactivated.\n        6. You will be logged out and redirected to the main page with a message confirming that your account has been deleted.\n\n### Advert Related Actions\n\n7. **Create an advert**\n\n    To create an advert follow these steps:\n    \n        1. Navigate to the Create Advert page by clicking the 'Create Advert' button at the navigation bar.\n        2. Fill out the advert form with the appropriate details\n        3. For the exact location of the advert, use the map to drop a pin on where it is located\n        4. Click on the 'Submit' button once finished\n\n    The advert will be created, and you will be redirected to the **Advert Details** page, where the details of it will be displayed.\n\n8. **Listed Adverts**\n    \n    To view the available adverts:\n\n        1. Click on the 'Listed Adverts' button at the top of the website.\n    \n    You will be directed to the **Listed Adverts** page, where all the available adverts are displayed\n\n9. **Advert Details**\n    \n    To view the details of an advert:\n\n        1. Find the advert you want the details for, by going to the Listed Adverts page (#8)\n        2. Click on the id of the advert.\n   \n    You will be directed to the **Advert Details** page, where the information regarding the specific advert will be displayed.\n\n10. **Delete an advert**\n\n    To delete an advert:\n\n        1. Navigate to the Advert Details page. You can do so in two ways: either by navigating to your Account page (#3), \n        finding the advert you wish to delete in the \"Advert Donation History\" table, and clicking on its id, or by navigating\n        to the Listed Adverts page (#8), finding the advert and clicking its id.\n        2. Click the 'Delete' button at the bottom of the page.\n        3. You will be asked if you wish to delete the advert, click 'OK'\n   \n    The advert will be deleted, and you will be redirected to the **Account** page.\n\n11. **Collect an advert**\n\n    To collect an advert:\n\n        1. Navigate to the Listed Adverts page (#8)\n        2. Find the advert you want to collect and click on its id.\n        3. You will be redirected to the Advert Details page, where its details can be displayed\n        4. Click on the 'Collect' button\n\n    A confirmation of your collection will be displayed.\n    Keep in mind you can collect adverts created by other users and not yourself.\n\n12. **Advert Map**\n\n    You can view a map containing all the adverts, represented by a drop pin.\n    To view the map:\n\n        1. Navigate to the Advert Map page by clicking on the 'Advert Map' button on the navigation bar.\n    \n    The drop pins are clickable, so if you wish to see the details of any advert, just click on the pin and then the adverts name.\n\n13. **Messages**\n\n    You can message the creator of an advert, if the information provided is insufficient, and you wish to know more.\n    You can do so by:\n\n        1. Assuming you are at the Advert Details page (#9), scroll down and click on the 'Message Advertiser' button\n        2. You will be directed to the message page with the recipient being the creator of the specific advertiser.\n        3. Fill in the message bar.\n        4. Click the 'Submit' button.\n\n    Your message will be sent to the advertiser, and you can respond to them in the same way when you get an answer from them.\n    You can view all your messages by clicking on the **Messages** button, on the navigation bar at the top of the website.\n    Be aware that if you have no messages, the **Messages** page will be empty.\n\n### Admin Related Actions\n\n14. **Log in (Admin)**\n\n    To log in to an admin account, you can use the same steps as a user would **(#2)**.\n    When you successfully log in, you will be redirected to the **Admin Account** page.\n\n15. **Admin Account Page (Account and Website Information)**\n    \n    To view account information, you can follow the same steps as a user would **(#3)**.\n    When you are successfully to the **Account Page**, your personal information will be displayed at the beginning of the website.\n    Underneath the personal information, you will find Website information. \n    These include:\n\n        1. Advert Collection History - History of every collected advert\n        2. Current Adverts - All available adverts\n        3. Deleted Adverts - All deleted adverts, by users or other admins.\n        4. Users - All active users and their main details. (for all details for a specific user refer to #)\n        5. Admins - All active admins and their main details. (for all details for a specific admin refer to #)\n    \n16. **Change Account Details (Admin)**\n\n    To change account details, you can use the same steps as a user would **(#4)**\n    When you successfully change your details, you will be redirected to the **Admin Account page**.\n\n17. **Create new Admin**\n\n    To create a new admin account:\n\n        1. Navigate to Admin Account page (#15).\n        2. Click on the 'Add New Admin' button at the bottom of the page.\n        3. You will be redirected to an Admin Sign up page, where you need to fill the form with the details of the new admin.\n        4. Click submit once the form is filled.\n    \n    If you successfully created a new admin account, you will be redirected to the **Admin Account** page, where you can see the new admin\n    in the **Admins** table.\n\n18. **User Details**\n\n    To see all the details of a specific user:\n\n        1. Navigate to the Admin Account page (#15).\n        2. Find the 'Users' table, and search for the specific user.\n        3. Click on their id.\n\n    You will be redirected to the **Account Overview** page, where you can see their personal information, the adverts they have created\n    and their orders (collected adverts).\n\n19. **Delete a User**\n\n    To delete a user:\n\n        1. Navigate to the Account Overview page (#18).\n        2. Click on the 'Delete User' button.\n        3. A confirmation message will appear asking you if you are sure youwish to delete the account.\n        4. Click 'OK'.\n\n    You will be redirected to the **Admin Account** page with a confirmation message saying the account was successfully deleted.\n\n20. **Advert Details (Admin)**\n\n    You can view listed adverts **(#8)** and their specific details **(#9)** in the same way a user would.\n    As an admin, you can also view listed, collected and deleted adverts through the **Admin Account** page **(#15)**\n    Through the **Admin Account** page, you can view specific details of any advert by:\n\n        1. Finding the specific advert you want details about in any of the advert tables (Advert Collection History, \n        Current Adverts, Deleted Adverts).\n        2. Click on its id.\n\n    You will be redirected to the **Advert Details** page, containing the information of the specific advert.\n\n21. **Delete an advert**\n\n    To delete any advert created by any user:\n\n        1. Navigate to the Advert Details page of the advert you wish to delete (#20).\n        2. click the 'Delete' button at the bottom of the page.\n        3. A confirmation message will ask you if you are sure you want to delete the avdert.\n        4. Clcik 'OK'.\n\n    You will be redirected to the **Admin Account** page, where you can see the deleted advert in the **Deleted Adverts** table.\n\n22. **Delete Admin Account**\n\n    To delete an admin account:\n\n        1. Navigate to the Admin Account Page (#15).\n        2. Click on the 'Delete Account' button.\n        3. You will be asked if you are sure you want to delete the account.\n        4. Click 'OK'\n\n    Your account will be deleted, you will be logged out, and you will be redirected to the main page.\n\n    \n\n ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSxryxnshS5%2FFeedForward","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FSxryxnshS5%2FFeedForward","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSxryxnshS5%2FFeedForward/lists"}