Giter Site home page Giter Site logo

abcd2's Introduction

abcd

A Bite of Culture in Dresses (ABCD)

[1] Download abcd.zip and deploy into xampp/htdocs/abcd2 You can download the abcd repo at https://github.com/sjasthi/abcd2 (Click the green "Download" button and select "Download ZIP" option)

[2] Launch XAMPP; Start Apache Server and SQL Server;

[3] Go to SQL Admin panel (phpmyadmin); Create a database called "abcd_db".

[4] Import the SQL file (xampp/htdocs/abcd/sql/abcd_db.sql) into abcd_db database.

[5] Launch the abcd application http://localhost/abcd2

[6] to exercise the admin functionality, you can login using the following user id and password.

User Name: [email protected] Password: 12345

abcd2's People

Contributors

darap007 avatar cwong-21 avatar malchar avatar sjasthi avatar prestofresco avatar evanmendo avatar guacamoley avatar shirox26 avatar faizkhan16 avatar chrismarkert avatar gaug1801 avatar cwongm avatar cloudystripe avatar samaragarrett avatar skylersav avatar

Watchers

 avatar

abcd2's Issues

(FA23-40) tag line for each character

For example,

As of now, #736 is
Rathika Ramasamy (wildlife photographer)

So,
Name = Rathika Ramasamy
tag_line = Wildlife Photographer

tag_line is optional (our system doesn't crash if it doesn't exist)

What needs to be done to support the tag line?

  1. CRUD forms and lists
  2. APIs
  3. database

Build a Chatbot for Project ABCD

[1] What is the dataset?

https://abcd2.projectabcd.com/api/getinfo.php?id=50

If you change id at the end of the URL, you will get different JSON data.
https://abcd2.projectabcd.com/api/getinfo.php?id=100

You can always get this data by looping through the IDs from 1 to 1000 (just assume that the database has 1000 IDs).
This is a standard python code to get the data using APIs.

This is your dataset. You are only interested in some data.

[2] Example of a typical (one) dataset

id":50,

"name":"Mother Teresa",

"description":"Agnes Gonxhe Bojaxhiu, known to the world as 'Mother Teresa' was a famous Albanian-Indian nun, who founded the Missionaries of Charity. She lived in India most of her life helping the poor and weak. She became a nun at a very young age. She was admired all over the world for her charitable work, including feeding the hungry, and looking after the sick.\r\n",

"did_you_know":"Mother Teresa won the Nobel Peace Prize for her charitable contributions to society.",

"category":"dresses, regional, religious, author",

"type":"girl (Specific)",
"state_name":"Kolkata",
"key_words":"Nun",
"image_url":"Slide50.PNG",
"status":"proposed",
"notes":"book1",
"book":"book1"

[3] Assume that you are providing a CHATBOT for www.projectabcd.com
(Stretch goal: Embedding chatbot on the website is a stretch goal)
(Target / committed goal: A standalone chatbot - desktop application or a web application (ideal) - is to answer some questions in the context of these Project ABCD)

--> What kind of questions the users / visitors can ask?
--> What kind of questions would you ask?
--> How NLP / ML can be used to answer those questions through the chatbog? Primarily, you will be making use of the data given to you (description and did_you_know?)

[4] What tools can you use?

https://botpress.com/blog/open-source-chatbots

-- Using Flicker or Google Drive or GitHub or Botpress host to host your chatbot.
--> Embed that chatbot link on www.projectabcd.com (3 or 4 lines of JavaScript code to connect to the chatbot you built)

[5] How to get the dataset from APIs?

API_BASE_URL = "https://abcd2.projectabcd.com/api/getinfo.php?id="

specify the IDs

all_ids = [743,711,476,523,677,701, 710, 711, 712, 713, 714, 715]
all_ids = range(1, 1001)

def fetch_data_from_api(ids):
data_list = []
for id in ids:
url = API_BASE_URL + str(id)
headers = {
"Accept": "application/json",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"
}

    response = requests.get(url, headers=headers)

    if response.status_code == 200:
        data_list.append(response.json()['data'])
    else:
        print(f"Failed to get data from the API for ID {id}. Status code:", response.status_code)

return data_list

fetch the data

abcd_data = fetch_data_from_api(all_ids)

(SU23-180) (Feature) RESTAPI for query.php

This API query.php will return a set of IDs.

The input parameters to this query can be 1 or 2 or all of the following.
category: can be any valid string
type: girl, boy, other
keywords: can be any valid string.

Users may provide these inputs in any order and in any combination.

The return data will contain a list of IDs. The list can be empty if there are no matches.

(Fa23-50) Persist the login success as a cookie for a month

Each time an admin accesses the site, he/she is challenged for the authentication.

Upon successful login, save the "success" as a cookie. When the admin comes back again, rely on the cookie to automatically sign in.

Make the cookie disappear once in every 30 days.

(SU23-160) (Feature) Support for Key Word management

[1] Admins can create a set of "key words"

[2] Admins can manage the 'key words'

  • delete (can be deleted if it is not used anywhere)
  • delete (if being used anywhere, the dresses are also updated)
  • modify (if key word name is changed, then the corresponding dresses are also updaed)
  • add (additional keywords can be added)
  • list (admins can see the list of keywords and the count of dresses against each keyword)

-[2] Each dress can have one or more of "key words".
admins can assign one or more keywords to a dress.

[3] An optimized 'key word assigner' page is created for the admins.

(SU23-50) (Bug) Sort issues

https://www.projectabcd.com/index.php

On the main page, we have different sort orders. But users need to click on the HOME logo to get the original sort order. To be intuitive, we need to support "ID" as the first sort order.

Also, sorting by 'Name' doesn't seem to be working. Name starting with 'D' is showing up first even before the names starting with 'A'. Also, the sort should work based on the entire collection (not just page by page display)

(sp-24) (enhancement) display of the dresses to the visitors

Show the references (on demand) when a dress is displayed.

eg: wiki links, youtube videos, news articles etc.

LINKS:
Those are shown as links - users can click and navigate to the respective link.

YOUTUBE VIDEOS:

It is displayed on the page itself.

(SU23-150) (Bug) Report on "type" is hard-coded

Report on "type" is hard coded to Boys, Men, Girls, Women, Other. That is not correct.
I standardized the values to (boy, girl, and other). And these are not showing up in the report.

The reports should not depend on hard-coded assumptions. It should get the frequency of the values present in the database.

(sp24 - enhancement) nominate / suggest / submit

We need a way to get nominations for the inspiring SHEROES or HEROES.

So, add a "Nominate" button to the tool bar.

What should be the expected behavior of the "Nominate" button

[1] If the users are not logged in, "Nominate" will challenge the users to login (it redirects the control to the login page)
Only logged in users can nominate a person.

[2] Once the users are logged in, "Nominate" button will show this form.

Nominate a Shero or a Hero here:

Category --> (radio buttons) Shero or Hero or Others
Name --> (text box)
Description --> (text area)

[Submit Button] [Cancel Button]

[3] Once the users "Submit", persist the data in a database

This is going to be a new table (nominations)

id: Auto incremented ID
category:
name:
descripiton:
: of the user who nominated; This will be automatically recorded

(SU23-40) (Bug) Admin or User Login

When users login, the form just stays on the page.

When admins login, the control should go to "admin.php".

When users login, the control should go to the 'Home Page'.

(FA23-20) Responsive design

The main page and clicking on a single image should be responsive (should properly display on desktop, ipad, mobile devices).

As of now, the display is messed up on mobile devices.

(sp24 - SHEROES) tag_line: Schema change

We need to update the schema to add "tag_line" field to the "dresses" table.

This is an optional field.

We only show this "tag_line" in the JQuery Data Tables.

(Suppression is a simple configuration)
We will NOT show the "description" in the table (we will show the "description" and "did you know" only on "View" mode).

(SU23-100) (Feature) Additional Reports

Enable additional reports for the admin.

[1] Keywords and counts:
For each keyword, how many dresses are there?
The keywords should be sorted from a..z

[2] Exception reports:
How many dresses are missing the type?
How many dresses are missing the category?

[3] Visualizations

Can we enable some reports in visual format? google charts?

(sp24 enhancement) - Blog Support (CRUD)

CRUD support for the Blogs

Blogs can contain video links (youtube) or images (uploaded)

Visitors can see the last N blogs.

N can be set by the admin.

Admins can perform CRUD on blogs.

It is already implemented in "Learn and Help" and "Aalambana" projects.
However, Project ABCD doesn't have that functionality.

(SU23-80) (Bug) Navigation consistency

Once the admin logs in, the "admin" on the main page should always be visibile.

It is disappearing in some cases.

For example, Admin --> preferences --> Submit will make the 'admin' button disappear.

(SU23-170) (Feature) Prev - Next navigation for the dresses

https://www.projectabcd.com/modify_dress.php?id=483 (updating a dress)

https://www.projectabcd.com/display_the_dress.php?id=451 (displaying a dress)

It would be nice to show "Left Arrow" and "Right Arrow" next to the name so that the users can navigate through all the dresses.

They need to go the list view and click on a dress OR change the ID in the URL to go forward / backward.

This enhancement helps the readers and admins to traverse the list.

(Fa23-30) sponsors managements

Sponsors can be organizations or individuals.
We need to support CRUD of sponsors (an admin action).

For visitors, the sponsors are displayed on "Sponsors" page or at the bottom of the main home page.

(SU23-30) (Feature) New User Registration - Validation Token

Users can register with fake emails now. To prevent that,

[3] An email validation token should be sent to the new users. Only upon successful validation of the token, the user should be registered and the "active" should be set to "yes".

[4] created_time and modified_time (schema change) should be automatically updated by the database.

(SU23-20) (Feature) New User Registration issues

[1] New users can register without giving first name and last name (or by simply giving blanks on the form)

[2] Upon the creation of the user, the control should go back to the home page showing a confirmation message that the user has bee created.

[3] Once a user is registered, the "role" should be set to "user" and the "active" should be set to "no".

(SU-190) (Feature) Web UI for query to get the IDs

Have an advanced query form just for the Admins (you need to add an icon to the admin panel).

It will have three fields:

category: multi-selection
type: boy, girl, other
keywords: multi selection

(Get IDs)

Show all the IDs matching the above search criteria in a text box.

(SU23-130) (Bug) Conditional First, Last, Next, Prev

If all the images are displayed on the main page, then there is no need to show 'First, Last, Next, Prev' links on the main page.

So, a conditional check needs to be placed to validate whether those links should be displayed.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.