Skip to content

Commit

Permalink
Merge branch 'main' into rlgaddy-webpages
Browse files Browse the repository at this point in the history
  • Loading branch information
lgaddy893 authored Dec 1, 2022
2 parents fb8fc9a + 5f022e6 commit ebece2e
Show file tree
Hide file tree
Showing 8 changed files with 721 additions and 252 deletions.
132 changes: 115 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,27 +8,125 @@
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Build](https://github.com/yagmurbbayraktar/CSC510_Project1/actions/workflows/python-app.yml/badge.svg)](https://github.com/yagmurbbayraktar/CSC510_Project1/actions/workflows/python-app.yml)

This repository contain the Project 1 of CSC 510 Fall 2022 group 39: Gifter.
# Gifter-2
[![DOI](https://zenodo.org/badge/535341071.svg)](https://zenodo.org/badge/latestdoi/535341071)
[![License](https://img.shields.io/github/license/landog893/Gifter-2?style=plastic)](https://github.com/landog893/Gifter-2/blob/main/LICENSE.md)
[![java](https://img.shields.io/badge/Made%20with-Java-brightgreen?style=plastic)](https://www.oracle.com/java/technologies/downloads/)
[![size](https://img.shields.io/github/languages/code-size/landog893/Gifter-2?style=plastic)](https://github.com/landog893/Gifter-2)
[![lang](https://img.shields.io/github/languages/count/landog893/Gifter-2?style=plastic)](https://github.com/landog893/Gifter-2/search?l=Java&type=code)
[![contrib](https://img.shields.io/github/contributors/landog893/Gifter-2?style=plastic)](https://github.com/landog893/Gifter-2/graphs/contributors)
[![issue op](https://img.shields.io/github/issues/landog893/Gifter-2?style=plastic)](https://github.com/landog893/Gifter-2/issues)
[![issue cl](https://img.shields.io/github/issues-closed/landog893/Gifter-2?style=plastic)](https://github.com/landog893/Gifter-2/issues?q=is%3Aissue+is%3Aclosed)
[![pull](https://img.shields.io/github/issues-pr/landog893/Gifter-2?style=plastic)](https://github.com/landog893/Gifter-2/pulls?q=is%3Aopen+is%3Apr)
[![pull_closed](https://img.shields.io/github/issues-pr-closed/landog893/Gifter-2?style=plastic)](https://github.com/landog893/Gifter-2/pulls?q=is%3Apr+is%3Aclosed)
[![GitHub Workflow Status](https://img.shields.io/github/workflow/status/landog893/Gifter-2/Build%20Workflow?style=plastic)](https://github.com/landog893/Gifter-2/actions/workflows/build.yml)

## Introduction
<br>
<p align="center"><img width="400" src="https://creazilla-store.fra1.digitaloceanspaces.com/cliparts/15883/christmas-gifts-clipart-xl.png"></p>

Gifter is a social platform that is built on the idea of gift giving and gift receiving. It runs as web application that allows users to create themselves a wishlist with items they want. The aim of this application is to help users with the process of picking out a gift. The application allows users to add friends and look at their wishlists. Items under the gift registries may also contain the cost and the website of the item. Currently, this project is not deployed on the web and functions on a local file that imitates a database. The project uses Python Smartlit for the GUI.
## Description

## Requirements
Please make sure latest versions of Python and Streamlit are installed. For Windows users, use Anaconda Navigator's command prompt. Get the command window to the space where the application is located and use the command.
Gifter-2 is a social platform built on the idea of gift giving and receiving! The goal of this application is to aid in the process of picking out a gift for friends. Users can create wishlists for themselves and add items/gifts that they would like to receive for their birthday. Users can proceed to add friends and view their wishlists as well. Gifter-2 also allows users to opt-in to email notifications which send a user's friends a reminder email regarding their upcoming birthday (if their email notifications are on as well). Items in the wishlists contain the cost of the item as well as the website where it can be purchased. This application is deployed on the web and is available for individuals of all ages to use!

```streamlit run main.py```
To start using Gifter-2, a user must first register by creating an account. The system collects information about a user's name, birthday, email, and interests. All of this information is stored in Gifter-2's database, and is not used by Gifter-2 in any other way.

## Usage
## Technologies
<p align="left">
<a href="https://www.python.org/" target="_blank">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/c/c3/Python-logo-notext.svg/1200px-Python-logo-notext.svg.png" alt="python" height="60"/>
</a>
<a href="https://streamlit.io/" target="_blank">
<img src="https://res.cloudinary.com/dyd911kmh/image/upload/v1640050215/image27_frqkzv.png" alt="streamlit" height="60"/>
</a>
<a href="https://www.postgresql.org/" target="_blank">
<img src="https://images.g2crowd.com/uploads/product/image/large_detail/large_detail_251be2af3ae607c45c14e816eaa1cf41/postgresql.png" alt="postgresql" height="65"/>
<a href="https://docs.anaconda.com/navigator/index.html" target="_blank">
<img src="https://upload.wikimedia.org/wikipedia/en/c/cd/Anaconda_Logo.png" alt="anaconda" height="65"/>
</p>

A user first has to register the application with their name and surname. They the application will provide them with an ID they will be using to log in. User IDs are also used when a user wants to add a friend. The user can create items to add the items they want to receive as gifts. From friends window the user can add or delete friends, and see their wishlists.
* Python
* StreamLit
* PostgreSQL

## Future Work
The future that couldn't be done in the scope of this project consists of:
* An SQL Database
* Smart phone application
* APIs with larger e-commerce stores like Amazon, Target, etc
* ML application to suggest gifts from interests and previous gifts
* A browser extension that allows wishlisting while browsing on e-stores
* A calendar containing birthdays and other 'gift holidays'
* And much more!
## Features

All new features are in bold.

* Register as a user.
* Add, edit, and delete items from a wishlist.
* Add and remove friends from friendslist.
* Dashboard displaying friendlist with their associated wishlists.
* **Significantly improved UI experience.**
* **Login using a username and password.**
* **Search for friends using usernames.**
* **Search for items using keywords.**
* **Send reminder emails for upcoming birthdays (if email notifications are on).**
* **Usage of PostgreSQL database to persist information.**
* **Application deployed to web.**

## Installation

You will need the following programs and packages installed on your local machine.

Programs:

* Python
* StreamLit
* PostgreSQL
* Anaconda Navigator

1) Setup and launch Anaconda Navigator.
2) Navigate to the location of the application and use the command ```streamlit run src/main.py```.

** DATABASE?? **

Note: In order to use the "Email Notification" functionality for this project, your team must set up an **Outlook** email account, and add the username and password to the send_reminder_email() method in account.py. You cannot use Gmail for this feature because Google set up a new restriction this year that doesn't allow third-party apps to send emails from Gmail accounts.

## Documentation

This project is a refactoring of the [Gifter](https://github.com/yagmurbbayraktar/CSC510_Project1) project from 2022. We have added several functionalities to significantly enhance the scope and user experience of this application.

* The video displaying the functionalities of the original project Gifter can be found [here]().
* The video displaying the new functionalities of Gifter-2 in comparison to the original project Gifter can be found [here]().

** ADD VIDEO LINKS **

### Use Cases
In order to learn more about how to run Gifter-2 and use its features, check out our [USAGE.md]() file!
** ADD USAGE.MD FILE **

### Documentation
**Still need to complete**

### Code Coverage
Gifter-2 uses CodeCov to generate the code coverage of the source code. Additionally, we use [blackbox tests](https://github.com/landog893/Gifter-2/blob/main/docs/BlackBoxTest.md) on the UI to supplement the coverage and ensure that the functionality works as expected.

## Future Features

While Gifter-2 is ready for users, there are several enhancements that could be made to amplify user experience. Below, we have listed several scopes of future improvements to Gifter-2 with a brief description.

* **Smart phone application:** Create an application for mobile devices that allows users to use Gifter-2 on the go.
* **APIs enhancement:** Incorporate the use of APIs from larger e-commerce stores such as Amazon or Target.
* **Machine Learning:** Introduce machine learning algorithms to suggest gifts for users based on interests and previous gifts.
* **Chrome extension:** Create a Chrome extension so users can add items to their wishlist while browsing online.
* **Calendar:** Develop a calendar feature to display user birthdays.

## Contribution

Please see the CONTRIBUTING.md for instructions on how to contribute to our repository.

## License

This project is licensed under MIT.

## Team Members
The team members who developed Gifter-2 are:
* Huang-Xing (Jesse) Chen
* Landon Gaddy
* Li-Chia (Jerry) Chang
* Saminur (Sami) Islam
* Shruti Marota

We communicated via Discord and through weekly in-person meetings.
<br>
<img width="500" alt="Screenshot (531)" src="https://user-images.githubusercontent.com/70153150/194780113-6e6c8a0c-6233-4883-b294-fdfddb96469a.png">
28 changes: 14 additions & 14 deletions data/people_data-copy.csv
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
ID,Name,Surname,Birthday,Interests,WishList,FriendList
1,Yagmur Basak,Bayraktar,12/17/1994,"Dancing, Reading, Cooking, Ballet, Writing","3,5,11,17"," 5, 6, 2, 3"
2,Murat,Bayraktar,09-07-95,"Basketball, Football, Electronics","3,5",1
3,Jane,Doe,01-01-00,"Hiking, Climbing, Bungee Jumping",5,4
4,John,Doe,02-02-99,"Painting, Sculpting, Art","2, 3","3, 5"
5,David,Beckham,10/30/2012,"Cookie Art, Puzzles, Pets","1, 4, 2","1, 3"
6,Albert,Einstein,02-05-04,"Zodiac Signs, Fitness",,4
7,Taylor,Swift,5/28/1957,"Weaving, DIY, Painting",6,
8,Bruce,Wayne,10-10-10,Technology,,
9,Tinker,Bell,04-04-00,Spellcasting,"8, 1, 4, 9, 10",5
10,Jon,Snow,12/31/1992,,"6, 9,10",
11,Hannah,Montana,05-05-95,"Singing, Dancing",,
12,Barney,Stinson,8/25/1972,"Women, suits",14,1
13,Michael Gary,Scott,05-05-65,"Spy Novels, Improvisation, Sales",,
ID,Name,Surname,Birthday,Email,Notifications,Interests,WishList,FriendList
1,Yagmur Basak,Bayraktar,12/17/1994,[email protected],On,"Dancing, Reading, Cooking, Ballet, Writing","3,5,11,17"," 5, 6, 2, 3"
2,Murat,Bayraktar,9/7/1995,[email protected],Off,"Basketball, Football, Electronics","3,5",1
3,Jane,Doe,1/1/2000,[email protected],On,"Hiking, Climbing, Bungee Jumping",5,4
4,John,Doe,2/2/1999,[email protected],Off,"Painting, Sculpting, Art","2, 3","3, 5"
5,David,Beckham,10/30/2012,[email protected],On,"Cookie Art, Puzzles, Pets","1, 4, 2","1, 3"
6,Albert,Einstein,2/5/2004,[email protected],Off,"Zodiac Signs, Fitness",,4
7,Taylor,Swift,5/28/1957,[email protected],On,"Weaving, DIY, Painting",6,
8,Bruce,Wayne,10/10/2010,[email protected],Off,Technology,,
9,Tinker,Bell,4/4/2000,[email protected],On,Spellcasting,"8, 1, 4, 9, 10",5
10,Jon,Snow,12/31/1992,[email protected],Off,,"6, 9,10",
11,Hannah,Montana,5/5/1995,[email protected],On,"Singing, Dancing",,
12,Barney,Stinson,8/25/1972,[email protected],Off,"Women, suits",14,1
13,Michael Gary,Scott,5/5/1965,[email protected],On,"Spy Novels, Improvisation, Sales",,
Loading

0 comments on commit ebece2e

Please sign in to comment.