agency-fe's People
agency-fe's Issues
Build Twilio Text Sending Microservice
As a Volunteer, when I sign up for a volunteer opportunity, I receive a text saying "Thank you for signing up for this task".
Tutorial: https://www.twilio.com/docs/sms/tutorials/two-factor-authentication-python-flask
- Python microservice built
- Receive Text
Re-Migrate DB to include Zipcode/Address
Add zip code to User DB,
Address, State, city, Zip for Opportunities
BCrypt for Python
Finish README's
Githubs for whole team
how to get it up and running
how to run test suite
endpoints for backend
Change Name to First Name, Last Name
Currently User has one name on front end, database has First and Last Names. Change to First and Last Name
Add functionality to display different data based on a users role / type
-
As a Volunteer, I should be able to view tasks that align with my set parameters in settings so I can better help a client
-
As a Client, I should be able to see the volunteers that have elected to help me.
Route to delete User
DELETE api/user/:id
If this endpoint is sent again with the deleted ID, a 204 code should be returned with a message of "Resource Deleted"
- Error message created
Thing Here.
Put your BODAAAY here...
- check box
** Bold Stuff**
Profile
As a client, I should see my information, on my profile page to increase user experience
Migrate DB on Heroku
Migrate the DB on heroku so that the site is live and can be given to FE.
Client Sign Up - Account Verification
As an unregistered client (someone who is in need of assistance) when I visit the root page, I see a text description explaining the purpose of Agency. Underneath the description of Agency I see a button 'Client'. When I click 'Client' I'm directed to a sign-in form where I see a button to Sign Up.
When I click 'Sign Up' I'm directed to a form where I see fields to enter my name, email, phone number, password and password confirmation.
Once those fields are entered with valid information, I see a button to 'Verify my Account'. Once I click 'Verify My Account' I am taken to a new page where I see a field to enter a verification code that is sent to my phone and a Submit Button. Once I enter a valid verification code, and click 'Submit' I am taken to my Dashboard
Route to return all User Opportunities
Return all created Opportunities created by one user
Sample Request
GET '/users/id/opportunities'
body
Add attribute "Roles" to Users table
Re-migrate database to add roles to users.
Possible roles: "volunteers", "clients"
This will be passed in through the front end.
example JSON response:
{
"first_name": "Suzanne",
"last_name": "Person",
"email": "[email protected]",
"phone_number": 0980980987,
"password": "password",
"role": "volunteer"
}
Returns Opportunities for single User
Route returns one opportunity belonging to single user.
GET '/users/user_id/opportunity/id'
Sample Response
status: 200
body:
{
"description": "Wash windows- I need someone to come in and wash the windows at the top of my house.",
"estimated_time": "1 hr",
"id": 1,
"location": "2848 Roslyn St., Denver CO 80238",
"title": "Rake Leaves",
"type": "Physical Labor",
"user_id": 1
....
}
- Returns 200
- Sad Path Returns 404 error
Route to return single user
Return single user by id:
Example Request
get '/users/id'
Example Response
Content-Type: application/json
Accept: application/json
status: 200
body:
{
"first_name": "Susan",
"last_name": "Person",
"email": "[email protected]",
"phone_number": 3031234567
"password": "password"
"role": 0
}
( 0 = volunteer, 1 = client)
The user is returned
- Validate uniqueness by email
- 400 if not successful
Styled Components
As a developer, I should implement styled-components in order to make a lighter, easier-to-read product. This will put the styling elements in the JS file, so that as developers, we do not have to search for this information.
Delete a User returns 204
DELETE api/user/:id
If this endpoint is sent again with the deleted ID, a 204 code should be returned with a message of "Resource Deleted"
- Error message created
Route to Edit User info
User can edit info:
Example Request
patch '/users/id/opportunities/1'
{
description: "Rake and bag leaves from front yard"
}
Example Response
Content-Type: application/json
Accept: application/json
status: 200
body:
{
description: "Rake and bag leaves from front yard"
}
- 400 if not successful
Volunteer Sign In Route
As a volunteer signing in on Agency, I enter my email and password, then I am routed to the dashboard.
Example Request
GET /api/v1/user
Content-Type: application/json
Accept: application/json
{
"email": "[email protected]",
"password": "password"
}
The user is returned
Example Response
status: 200
body:
{
"first_name": "Susan",
"last_name": "Person",
"email": "[email protected]",
"phone_number": 3031234567
"role": 0
}
Routed to user profile
api/v1/users/:id
- Create route
- Tests for all of the above
- 401 if not successful
Client can Edit an Opportunity
As a client on my dashboard, I should see next to each opportunity an option edit the information about the opportunity in order to enhance user experience.
Do thing
- Check Box
Bla bla
User Can Edit Profile
As a user, I should see in my profile a button that allows me to edit my user information, in order to enhance user experience.
Sign In Form
As a user, I should be able to sign-in to my account in order to navigate my settings.
I will include the following:
first name
last name
phone number
password
password confirmation
After entering the information, I will click a button to submit the form.
Volunteer Dashboard page
As a volunteer on my dashboard, I see a "Welcome User" note, and several buttons
-add hours to my schedule
- "Tasks" button
- "About" button
- "Team" button
- "History" button
for available hours/ Option to make schedule
Example Request
GET /api/v1/users/:id
Content-Type: application/json
Accept: application/json
Example Response
status: 200
- Create route
- 400 if not successful
Pages for Enhancement
As a user, there should be pages in the app that I have access to when I am signed in to the app.
Client Sign In Route
Example Request
GET /api/v1/login
Content-Type: application/json
Accept: application/json
{
"email": "[email protected]",
"password": "password"
}
The user is returned
Example Response
status: 200
body:
{
"first_name": "Susan",
"last_name": "Person",
"email": "[email protected]",
"phone_number": 3031234567
"role": 0
}
Routed to user profile
api/v1/users/:id
PWA
The app should have a registered service worker so that the page can hold data and have a build for PWA environment
Convert Media queries into the styled components
As a user, I should be able to see media queries work on a phone screen.
A user wouldn't necessarily know that it is in a styled components format but ๐คท๐ผโโ๏ธ
User Prompt
As a user, I would like to know that I am able to add the application to my device. This will give me easier access to the application
Client can see created Opportunities
As a client on my profile page, I should see all of the opportunities that I have created, as well as whether or not they have been fulfilled.
Research API's
Reseach Websockets
Look into websockets to see if this is something we might want to use in a microservice.
Reformat information coming in from FE for Opportunities
Information coming in body of request for POST 'users/id/opportunity' needs to be reformatted as json, to do this we need to call json.loads(data)
Research Python
How to do Testing, API calls
Return All Opportunities for a Single User
User is able to see all opportunities for that user.
GET '/users/user_id/opportunities'
Sample Response
status: 200
body:
[
{
"description": "Wash windows- I need someone to come in and wash the windows at the top of my house.",
"estimated_time": "1 hr",
"id": 1,
"location": "2848 Roslyn St., Denver CO 80238",
"title": "Rake Leaves",
"type": "Physical Labor",
"user_id": 1
},
{
"description": "I cannot rake my yard- I need someone to come in and get the front and back yard.",
"estimated_time": "1 hr",
"id": 2,
"location": "2848 Roslyn St., Denver CO 80238",
"title": "Rake Leaves",
"type": "Physical Labor",
"user_id": 1
},
{
"description": "Cannot wash all of my floors due to inability to stand longer than 15 minutes without extreme pain. Thanks in advance!",
"estimated_time": "1 hour",
"id": 3,
"location": "2848 Roslyn St., Denver CO 80238",
"title": "Mop Floors",
"type": "Physical Labor",
"user_id": 1
}
]
- Returns 200
- Sad path returns 404 not found
Route to create User
User can create account:
Example Request
POST /api/v1/users
Content-Type: application/json
Accept: application/json
{
"first_name": "Susan",
"last_name": "Person",
"email": "[email protected]",
"phone_number": 3031234567
"password": "password"
"role": 0
}
( 0 = volunteer, 1 = client)
The user is returned
Example Response
status: 201
body:
{
"first_name": "Susan",
"last_name": "Person",
"email": "[email protected]",
"phone_number": 3031234567
"role": 0
}
- Create route
- Validate uniqueness by email
- Send properly formatted JSON response
- 400 if not successful
Client can Delete Opportunity
As a client, I should see a button next to each opportunity that allows me to delete an opportunity from my profile page. After I click on the delete button, the opportunity will disappear from my view.
User can Edit Info
PATCH api/v1/users/:id
Example Request
status: 200
body:
{
"first_name": "Suzanna Banana",
"last_name": "Person",
"email": "[email protected]",
"phone_number": 3031234567
"role": 0
}
Example Response
Status Code: 200
- Response Code 200
- Error code 404
Deploy to AWS
As a developer, I need to deploy my app to AWS so that users may easily access the site.
Complete Media Queries
Add media queries to application so the application will adjust accordingly whether on the phone or computer so a user can have a better experience
API Calls
As a developer, I need to make an apiCalls file in order to retrieve data from the backend.
Set Up Continuous Integration
Set up Travis CI and get it passing in order to have it continuously integrate to heroku
App's Landing Page
As a visitor opening Agency for the first time, I see a text box explaining what Agency's purpose is, and two boxes underneath each with an option:
- Volunteer
- Client
Route to Edit Opportunity info
User can edit info:
Example Request
patch '/users/id'
{
"first_name": "Suzanna",
"last_name": "Person",
"email": "[email protected]",
"phone_number": 3031234567
}
Example Response
Content-Type: application/json
Accept: application/json
status: 200
body:
{
"first_name": "Suzanna",
"last_name": "Person",
"email": "[email protected]",
"phone_number": 3031234567
}
- 400 if not successful
Client Can Create Opportunities
As a client on my dashboard, I see a button on my profile where I can add an opportunity.
The fields for this opportunity are:
title (ex "Take out Garbage")
description (ex "My partner is out of town this week and I am unable to lift my garbage and walk the bag outside.")
estimated time (ex "10 minutes")
type (ex "chore")
location* (ex "123 Maple St., Denver Co")
There will be a button at the bottom of this form to submit the information.
Route to Create Opportunity
User is able to create an opportunity using the following attributes:
title, type, location, estimated time, description and user_id
POST '/users/user_id/opportunity'
Sample Request
{
"title": "Mop Floors",
"type": "Physical Labor",
"location": "2848 Roslyn St., Denver CO 80238",
"estimated_time": "1 hour",
"description": "Cannot wash all of my floors due to inability to stand longer than 15 minutes without extreme pain. Thanks in advance!",
"user_id": 1
}
Sample Response
status: 201
body:
{
"description": "Cannot wash all of my floors due to inability to stand longer than 15 minutes without extreme pain. Thanks in advance!",
"estimated_time": "1 hour",
"id": 3,
"location": "2848 Roslyn St., Denver CO 80238",
"title": "Mop Floors",
"type": "Physical Labor",
"user_id": 1
}
- Error code 204
Setup Models
Sign Up Requires Unique Email
As a User, when I sign up for an account, I need to use a unique user email in order navigate through the app. If the email is taken I will receive an error that says "Please try again!", and I will need to try again.
App has Landing Page with sign in Buttons
As a user, I should be brought to a Landing page in order to enhance my experience.
The page will have a short explanation of the app, and buttons to sign in as a "Client" or a "Volunteer"
Route to return all Users
Return all created users:
Example Request
get '/users'
Example Response
Content-Type: application/json
Accept: application/json
status: 200
body:
[{
"first_name": "Susan",
"last_name": "Person",
"email": "[email protected]",
"phone_number": 3031234567
"password": "password"
"role": 0
},
{
"first_name": "Joanne",
"last_name": "Person",
"email": "[email protected]",
"phone_number": 3031234567
"password": "password"
"role": 0
},
{
"first_name": "bob",
"last_name": "Person",
"email": "[email protected]",
"phone_number": 3031234567
"password": "password"
"role": 0
}]
( 0 = volunteer, 1 = client)
The user is returned
- 400 if not successful
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.