Giter Club home page Giter Club logo

charity-spot's People

Contributors

david-roodt avatar lindzik avatar molothesniper avatar nimgaluu avatar timovdmerwe-18 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

charity-spot's Issues

Normalize our database and work on our seedDatabase.py/createDataFile.py programs

The database should be normalized if possible. The names of columns could also be changed if needed since the structure of the system has changed somewhat.

The two python programs responsible for seeding our database and creating the files needed by the AI can also be updated to work with the new database structure. The data is filled with patterns that our AI is meant to find while being trained. We should add descriptions and ratings/comments to the program to make the mock donations feel more real.

We might change the patterns slightly if needed, but the overall structure of our mock data should not need to be changed.

Also, please add an AlertClient and AlertOrg column to the delivery table.

The new identity used to refer to assisting organisations in the db is assist and for organisations in need it is need. Both people in need and assisting organistions can be referred to as users or organisations. This naming scheme is to avoid confusion xD

Create a table to store the comments and ratings that are left on users profiles

Create a table in our db that will be used to store the ratings and the comments that are left on the profile pages of users.

The table should have the id of a user, the id of the user who left the comment and rating, the comment , the rating

Other columns can be added if you feel that is is necessary. Also, please create the corresponding repo functions that we need to read and write to the table.

Create a service and api call that will take in the location of a scheduled delivery as a string, the ID of the item being donated, the date+time that the delivery will take place and the ID's of the two parties involved in the donation. Use the repo layer to store the information

The flow of how an assisting party will reach this stage:

-->Party in need finds an assisting party with an item that they would like to have
-->Party in need navigates to the profile page of the assisting party and sends them a message asking for an item
-->Assisting party reads to the message and decides to donate item to that person
-->Assisting party navigates to the profile page of the party in need and clicks a button that will allow them to schedule the delivery
-->A form is presented to the assisting party where they can schedule the delivery
-->A notification is sent to the party in need that a delivery has been scheduled with them
-->If the party in need would like to change the date/ location of the delivery, they will have to message the assisting party and ask them to update the information of the delivery.
-->Both the parties in need and assisting parties should be able to view all of their schedule deliveries as a list by navigating to their profile and going to a "Scheduled deliveries" section

Verify Email Before Registration

  • Use NodeMailer to send registration confirmation email.

  • The email should contain a secrete, randomly generated code that the user will input on the registration page for verification.

  • The user's information will not be saved on the database if this is not completed within an acceptable time frame. So, the user will not be able to use the interactive feature (Charity-Spot) if they are not verified.

Create a service and api call for the item request feature

The api call should take in the type of the item, a location ("Pretoria", "Cape Town" , etc) and the day of the week that the person needs the item. The service layer will make use of the AI by sending requests to a port (ex. localhost:50 with a string containing the info). The AI will return a list of charities and their info that must then be returned to the client.

Create a table to store all scheduled deliveries. The table should store the ID of the item being donated, the location where the donation will take place as a string, the location+time of the donation and the ID's of the two parties involved in the donation. Create corresponding functions to store the information in the database

The flow of how an assisting party will reach this stage:

-->Party in need finds an assisting party with an item that they would like to have
-->Party in need navigates to the profile page of the assisting party and sends them a message asking for an item
-->Assisting party reads to the message and decides to donate item to that person
-->Assisting party navigates to the profile page of the party in need and clicks a button that will allow them to schedule the delivery
-->A form is presented to the assisting party where they can schedule the delivery
-->A notification is sent to the party in need that a delivery has been scheduled with them
-->If the party in need would like to change the date/ location of the delivery, they will have to message the assisting party and ask them to update the information of the delivery.
-->Both the parties in need and assisting parties should be able to view all of their schedule deliveries as a list by navigating to their profile and going to a "Scheduled deliveries" section

On_Registration - accept a picture

  • Update registration page to allow a user to upload a picture.

  • The picture should be converted to base64 and the link to the image should be stored in the db.

  • Same as the pictures for donated items

Create a page for the item request feature

The page should be on the navbar. It should look similar to the donate page, but it does not need a history section. A client should be able to enter the type of item that they need, their location and the day of the week that they need the item. The page should then be reloaded to display a list of charities that the AI has predicted might be able to help them.

Updated task for the notification UI

Create a page that will display a logged in user's active notifications. Both parties in need and assisting organisations will be referred to as users from now on to prevent confusion about the names. The notifications could resemble something like this:

You have a new message from user y
You have a new message from user x
User z scheduled a delivery with you

Each active notification should have a button called "viewed" or something else that will remove the notification from the user's active list of notifications. You can decide what information you would like to show(profile pictures, etc) for each notification.

There should also be something on the nav bar that will alert the user if they have a new notification. It could be text "notifications" or an icon that will change colour if there are notifications that have not been "viewed" yet.

Fix the testing problems we had for demo 3

Unit

The tests that were written for demo 3 need to be working fully. I will help to fix the linting errors with the code so that the tests can be run on github. We should focus on the unit tests for each feature that we have at the moment. The unit tests for the notification and comment/rating features can be done in our second sprint. But the unit tests that we have for all of our current features need to be working perfectly. If we change some code for the features that are done I will help update the tests. We also need to create a document for the tests

Integration

Our integration tests can be done after all of the unit tests are done. We will still be working on the design of the UI so the integration tests we have currently might not be usable after. I will help write the integration tests if we do not complete the UI in time. We also need to add our integration tests to the testing documentation.

Create the necessary API calls and service layer functions that are needed for the rating/comment feature

Create an API call that we can use to store a comment in our database. The API call should take the ID of the user that wrote the comment, the ID of the user that the comment was written for and the comment itself. Create a corresponding API call that we can use to store a rating.

Also, please create an API call that will return all of the comments that were left for a user given their ID. The API call should return the ID's of the users that wrote the comments and the comments themselves. Create an identical API call that we can use for ratings.

Create a form/page that an assisting party will use to schedule a delivery with a party in need. The form should take in the date that the delivery will take place, the location of the delivery using coordinates and the item to be delivered/ collected.

The flow of how an assisting party will reach this stage:

-->Party in need finds an assisting party with an item that they would like to have
-->Party in need navigates to the profile page of the assisting party and sends them a message asking for an item
-->Assisting party reads to the message and decides to donate item to that person
-->Assisting party navigates to the profile page of the party in need and clicks a button that will allow them to schedule the delivery
-->A form is presented to the assisting party where they can schedule the delivery
-->A notification is sent to the party in need that a delivery has been scheduled with them
-->If the party in need would like to change the date/ location of the delivery, they will have to message the assisting party and ask them to update the information of the delivery.
-->Both the parties in need and assisting parties should be able to view all of their schedule deliveries as a list by navigating to their profile and going to a "Scheduled deliveries" section

The form is going to make use of the google maps api for the location, but for now we can just have it be a string. The items should be displayed as a drop down list/ radio group from all of the items that the assisting party currently has available. The date and time of the delivery can be anything xD.

Updated task for the notification feature service/api layer

No more server-sent events xD

Create an API call and corresponding service that will fetch all of the notifications of a user. From now on we should refer to both assisting organisations and parties in need as users to prevent name confusion. The messages that have a "true" in the db for either the AlertClient or AlertOrg columns should return a notification for each chat given the id of a user. So we want a list of all of the chats that have a new message that the logged in user has not read yet. We should repeat the exact same process for scheduled deliveries. It could like like this:

You have a new message from user x
You have a new message from user y
A delivery has been scheduled with you by user z

There should also be an api call that will update the AlertClient or AlertOrg columns in the db. The logged in user will have a button that they can click called "viewed" for each active notification. Once the notification has been "viewed" it should no longer be in the list of active notifications.

Please ask David to create the repo functions that you need/ make changes to the tables where necessary.

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.