code4socialgood / c4sg-services Goto Github PK
View Code? Open in Web Editor NEWCode for Social Good connects nonprofits and open sources with tech volunteers
License: MIT License
Code for Social Good connects nonprofits and open sources with tech volunteers
License: MIT License
From @Code4SocialGood on February 22, 2017 15:49
Web Path
Home Page -> John Doe -> My Profile
Problem Description
Some of the fields are missing from backend
Task Description
Add following fields to "user" table
Field Name
Introduction
LinkedIn URL
Personal Web Site
Resume
Skill 1
Skill 2
Skill 3
Skill 4
Skill 5
Column Definition
String, nullable, no default
Here is instruction on how to make database change
https://drive.google.com/drive/folders/0B-ZVdTdfgx4IZGJVM0FTbU5ZeFk
Expose those fields to Rest API
Timeline
We implement weekly sprint. This task is given a default of one week. You don't have to finish all requirements in this task, but please submit a Pull Request with whatever code change you have by 3/1. This helps us get the latest development status and plan the next sprint efficiently.
Reference: Current Model
UserDto {
country (string, optional),
displayFlag (string, optional),
email (string, optional),
firstName (string, optional),
github (integer, optional),
id (integer, optional),
lastName (string, optional),
latitude (string, optional),
longitude (string, optional),
phone (string, optional),
role (string, optional),
state (string, optional),
status (string, optional),
userName (string, optional),
zip (string, optional)
}
Copied from original issue: Code4SocialGood/C4SG-Obsolete#307
Rest API
GET /api/organizations/search (already exist)
Requirement
In organization table, add a column: project_updated_time, timestamp, not null
Searches the keyword in organization name and description, case insensitive.
The search result is sorted by project update time in descending order. Sorting by project update timestamp ranks the most active organizations on top of research result.
Add the following comments to the endpoint operation (serve as Javadoc):
Searches the keyword in organization name and description, case insensitive. The search result is sorted by project update time in descending order.
From @Code4SocialGood on March 13, 2017 5:45
Copied from original issue: Code4SocialGood/C4SG-Obsolete#511
From @Code4SocialGood on March 2, 2017 22:50
This is the accompany issue for backend refactor task #389 . Frontend and backend refactor will go in together so application won't be broken.
Copied from original issue: Code4SocialGood/C4SG-Obsolete#403
Endpoint: GET /api/projects/all
Requirement: Populate create time. It currently returns null.
End Points
POST /api/projects/add
POST /api/organization/create
POST /api/users
Requirement
Endpoint: POST /api/projects/add
Requirement: Update "project update time" column in organization table
Note: "project update time" column will be created in issue #62
From @Code4SocialGood on February 20, 2017 18:27
/api/organization/create
Copied from original issue: Code4SocialGood/C4SG-Obsolete#290
From @Code4SocialGood on February 28, 2017 16:25
Reference how the unit test for ProjectControler works.
Write unit test for each operation in User Controller.
Copied from original issue: Code4SocialGood/C4SG-Obsolete#370
Endpoint
GET /api/users/developers
This endpoint returns a list of C4SG developers. This list of users will be displayed in About Us page.
Requirement
Retrieve the users who are c4sg developers (developer_flag=Y), and who also set their public profile to be true (public_profile_flag=Y). sort the users by their Github commit in descending order.
SELECT *
FROM USER
WHERE DEVELOPER_FLAG = 'Y'
AND PUBLIC_PROFILE_FLAG = 'Y'
ORDER BY DEVELOPER_COMMIT DESC
Retrieve the users who are c4sg developers and who set their public display to be true. Sort the users by their Github commits in descending order.
From @Code4SocialGood on December 29, 2016 21:49
Currently, front end developers has to run back end locally to get data feed from Rest API. Setup architecture to enable front end developers to work on front end without running back end application locally.
Copied from original issue: Code4SocialGood/C4SG-Obsolete#8
From @Code4SocialGood on March 7, 2017 23:10
Requirement
Develop a new endpoint for UserController: POST /api/user/{userId}/uploadResume
Reference
POST /api/organization/{organizationId}/uploadLogo
Copied from original issue: Code4SocialGood/C4SG-Obsolete#464
Background
C4SG web application will interface with Slack to provide chat room functionality.
Requirement
Create Rest API end point: isJoinedChat
Description: This operation checks whether a user has joined the Slack team room
Input Parameter: user's email address
Constant: Slack team room: https://code4socialgood.slack.com/
Reference
Slack API: https://api.slack.com/community
Slack tasks: #3, #24, #25, #26
Document
Vision - Online Chat.docx
Use Case Specification - Online Chat.docx
Chat Technical Design and Slack Integration.docx
Requirement
Create project_skill table
Reference
user_skill
From @Code4SocialGood on March 7, 2017 21:4
Requirement
Develop a new endpoint for UserController: POST /api/user/{userId}/uploadAvartar
Reference
POST /api/organization/{organizationId}/uploadLogo
Copied from original issue: Code4SocialGood/C4SG-Obsolete#459
Create two database scripts
From @shobhit-sri on January 15, 2017 23:30
Copied from original issue: Code4SocialGood/C4SG-Obsolete#113
Endpoint
POST /api/projects/add
Requirement
Create a new DTO: CreateProjectDTO.
The new DTO contains the following fields:
organizationId: Required
name: Required
description
isRemote: indicate whether this project is remote or local. 'Y' or 'N'
address1
address2
city
state
country
zip
Change the input parameter from Project entity to CreateProjectDTO
Note on Create Timestamp
In project table, there is a column named created_time. When you insert the project in the table, you need to set created_time to NULL. The new record will then be created with created_time as current timestamp.
See: https://dev.mysql.com/doc/refman/5.5/en/timestamp-initialization.html
Review the database structure and modify as needed.
Controller: Project Controller
Endpoint: /api/projects/bookmark/projects/{projectId}/users/{userId}
Implementation: Insert a row in user_project table, status = 'B'
Background
C4SG web application will interface with Slack to provide chat room functionality.
Requirement
Create Rest API end point: sendChatInvitation
Description: This operation sends an email invitation to join Slack Team Site
Input Parameter: user's email address
Constant: Slack team site: https://code4socialgood.slack.com/
Reference
Slack API: https://api.slack.com/community
Slack tasks: #3, #24, #25, #26
Document
Vision - Online Chat.docx
Use Case Specification - Online Chat.docx
Chat Technical Design and Slack Integration.docx
Requirement
Refactor the endpoint: GET /api/skills/all
Business Logic
select s.skill_name, count(*) as total
from user_skill us
join skill s on us.skill_id = s.id
group by us.skill_id
order by total desc
The following endpoints are required for front-end to be able to display and upload images and files:
GET /api/projects/{id}/image
POST /api/projects/{id}/image
GET /api/users/{id}/avatar
GET /api/users/{id}/resume
Background
C4SG web application will interface with Slack to provide chat room functionality.
Requirement
Create Rest API end point: inviteToChannel
Description: This operation invites a team member to join a Slack channel
Input Parameter: user's email address, slack channel ID
Constant: Slack team room: https://code4socialgood.slack.com/
Reference
Slack API: https://api.slack.com/community
Slack tasks: #3, #24, #25, #26
Document
Vision - Online Chat.docx
Use Case Specification - Online Chat.docx
Chat Technical Design and Slack Integration.docx
Endpoint
GET /api/users/search (refactor this existing endpoint)
Background
As shown in the attached wireframe, user could search for volunteers by combination of:
Keyword
Skills
Current Implementation
Currently, this endpoint searches users with keyword in userName, firstName or lastName. It accepts three input parameters.
Requirement: Refactor Search Project Endpoint
Input Parameters
Keyword: this is a string, this is optional
Skills list: this is a list, this is optional
Business Logic
Reload SKILL table with data below:
HTML/CSS
JavaScript
Java
Python
C++
PHP
Ruby
SQL
Wordpress
Drupal
SEO
Android
iOS
UI/UX Design
Graphic Design
Project Management
Business Analysis
Background
C4SG web application will interface with Slack to provide chat room functionality.
Requirement
Create Rest API end point: createPrivateChannel
Description: This operation create a private Slack channel
Input Parameter: private channel name
Constant: Slack team room: https://code4socialgood.slack.com/
Reference
Slack API: https://api.slack.com/community
Slack tasks: #3, #24, #25, #26
Document
Vision - Online Chat.docx
Use Case Specification - Online Chat.docx
Chat Technical Design and Slack Integration.docx
From @Code4SocialGood on March 6, 2017 7:28
Please load up to 15 rows to project, user, and organization tables, so that we could test pagination.
Copied from original issue: Code4SocialGood/C4SG-Obsolete#434
From @Code4SocialGood on March 12, 2017 17:59
Copied from original issue: Code4SocialGood/C4SG-Obsolete#509
From @Code4SocialGood on January 15, 2017 7:35
Generate ERD
Generate Data Dictionary
Timeline
We implement weekly sprint. This task is given a default of one week. You don't have to finish all requirements in this task, but please upload whatever you have by 2/28. This helps us get the latest development status and plan the next sprint efficiently.
Copied from original issue: Code4SocialGood/C4SG-Obsolete#109
Do we need HomeController and operations in it?
HomeController:
DELETE /home
GET /home
HEAD /home
OPTIONS /home
PATCH /home
POST /home
PUT /home
From @Code4SocialGood on February 21, 2017 6:43
Task Description
Specific Considerations
Copied from original issue: Code4SocialGood/C4SG-Obsolete#295
Endpoint: GET /api/projects/search/byKeyword/{keyWord}
Requirement:
Sort the search result by create timestamp, in descending order.
Add the following comments to the endpoint operation (serve as Javadoc):
Searches the keyword in project name and description, case insensitive. The search result is sorted by project create time in descending order.
From @arpitsrm on March 8, 2017 10:31
As per my understanding, It should be something like below :
Also, it can be a solution for #295 as well.
Copied from original issue: Code4SocialGood/C4SG-Obsolete#482
From @Code4SocialGood on December 29, 2016 23:12
Implement Travis CI to run tests on both the server, client, and end to end.
Copied from original issue: Code4SocialGood/C4SG-Obsolete#26
From @Code4SocialGood on February 28, 2017 22:54
Copied from original issue: Code4SocialGood/C4SG-Obsolete#378
From @Code4SocialGood on March 2, 2017 15:57
Copied from original issue: Code4SocialGood/C4SG-Obsolete#399
From @Code4SocialGood on February 21, 2017 16:18
Background
We are currently using Hibernate default connection pool.
It is recommended to use a third party pool for best performance and stability.
One candidate of third party tool is C3P0
Task
If decide to use third party tool:
Copied from original issue: Code4SocialGood/C4SG-Obsolete#303
From @russon77 on March 5, 2017 16:7
i.e. for projects
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://c4sg.herokuapp.com/api/projects/all. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing).
Copied from original issue: Code4SocialGood/C4SG-Obsolete#430
From @Code4SocialGood on February 28, 2017 16:25
Reference how the unit test for ProjectControler works.
Write unit test for each operation in Organization Controller.
Copied from original issue: Code4SocialGood/C4SG-Obsolete#371
Endpoint
GET /api/users/developers
Requirement
You will need to add two script files in: \c4sg-services-1\src\main\resources\db\migration
file 1: alter user table to add the column
file 2: update user table to set the new column to be 'Y' for some rows
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.