Giter Site home page Giter Site logo

saakshaat / projectory Goto Github PK

View Code? Open in Web Editor NEW
4.0 1.0 2.0 964 KB

Project and team matching open sourced platform for in-house project hiring and team management.

Home Page: https://projectory-5171c.web.app/

License: MIT License

JavaScript 100.00%
node-js express-js react project clubs google-developer-groups firebase firebase-firestore open-source

projectory's Introduction

Hello World!

projectory's People

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

projectory's Issues

[Edit Proflie] Edit profile require `socials.email` field

Describe the bug
Edit profile require socials.email field. Since users are not allowed to edit their email address, it's not necessary to return email field within socials object. In addition to this, if client doesn't include email field in the request, the sever will remove it from socials object.

Check already Interested while Apply for Project

Issue in the apply callback method

else if (project.data().interested.length > 0 && project.data().interested.prototype.indexOf(req.user.docId) > -1)

The first check for the length of the array passes but the second test throws an undefined error.

The issue is likely because the server cannot identify Array.prototype.indexOf()

API for allowing users to select which skills to show on their Profile Snapshot Card

Context
I think the Profile Snapshot Card would be more informative if we could show some skills of users.
However, one user can have a lot of skills, so there is a good chance we don't have enough space in the card to show all of them.

Request
It would be nice we allow users to select some of their best skills (at most 5?) to show on their Profile Snapshot Card. To do this, we need an API to get user top skills.

Addition Usage
We can show those skills first on users' profiles.

[Login Edge Case] Server return 2 responses

Describe the bug
When users with empty profile try to login, the server will return 2 different responses:

  1. First with status 200 (OK)
  2. Second with status 404 (Not Found)

To Reproduce
Steps to reproduce the behavior:

  1. Signup a new account but not create a profile yet.
  2. Try to login and look for server response.

Expected behavior
The server should respond only 1 response with status number 404.

Screenshots
image

Start page text does not scale well

Start page text (mainly the word Projectory) does not scale well with small screen sizes(on mobile devices 6",5.5" screens)

Screenshots:
alt text alt text

Smartphone :

  • Device: [e.g. iPhone7, Samsung A50]
  • Browser [e.g. Chrome, Firefox]

[Create Profile Edge Case] Users with the profile created can still access `/create`

Describe the bug
Users with the profile created can still access /create.

To Reproduce
Steps to reproduce the behavior:

  1. Login.
  2. Go to /create.

Expected behavior
Users with a profile should not have access to /create because when they submit a new profile creation form, the server always returns an error status.

Suggested Solution
When a user login, the server can respond with a boolean variable to show the user already has a profile or not.

Deleting Project Sends Owner's Email to Interested and Team

Describe the bug
Deleting a project sends an email to the user but also the interested and team members.

To Reproduce
Send a DELETE request to /project/:state/:projectId where :state represents whether the project is currently open or closed.

Expected behavior
On the completion of the delete function, it should call the following email triggers for sending an email to

  • just the owner
  • itself and bcc all team members
  • itself an bcc all interested users (if the project is open at the time)

If the team or interested fields are empty, it just sends the email to [email protected]

Screenshots
Screen Shot 2020-05-20 at 2 48 23 AM
This email should have just been sent to oscar but was also sent to saakshaat2001 (in the team)

Source

My Project Filtering Feature

  • Need to implement project card filtering
    <Card elevation={2} style={{ justifyContent: 'center', alignItems: 'center', display: 'flex', marginTop: 25, marginLeft: '30%', marginRight: '30%' }}> <FormControl component="fieldset"> <RadioGroup row name="project_status" value={this.state.value} onChange={this.handleChangeRadio} > <FormControlLabel value="open" control={<Radio />} label="Open" /> <FormControlLabel value="closed" control={<Radio />} label="Closed" /> </RadioGroup> </FormControl> <FormGroup row > <FormControlLabel control={ <Switch checked={this.state.createdProjects} onChange={this.handleChangeSwitch} name="createdProjects" /> } label='Created' /> <FormControlLabel control={ <Switch checked={this.state.selectedProjects} onChange={this.handleChangeSwitch} name="selectedProjects" />} label='Selected' /> </FormGroup> </Card>

Grid Auto-Layout

  • At the moment Grid spacing is not adjusting according to dynamic grid-item heights.
  • Needed is a Auto-Layout of grid-items (project cards)
  • Code for the Grid Component can be found in ProjectList.js - Line 90.
  • Uneven Spacing between cards in the grid.
    Capture

Skills Category

Categorize skills into different categories such as

  • Cloud
  • Databases
  • Backend
  • Frontend
  • Designer
  • Misc

Document API endpoints

Need to explain how every endpoint functions:

  • Endpoint
  • Type of Request
  • Request Body
  • Needs authentication (?)
  • Response
  • Potential errors returned in response

Directory of Endpoints

Format

User_Own_Profile

endpoint: https://us-central1-projectory-5171c.cloudfunctions.net/baseapi/my/profile

type: GET

request body: ~none~

authentication: required ID Token

response:

{
   "information": {
       "name": "",
       "bio": "",
       "socials": {
           "github": "",
           "linkedin": ""
       },
       "institution": ""
   },
   "projects": {
       "projects_created": 0,
       "projects_selected": 0,
       "open": 0,
       "closed": 0
   },
   "credentials": [
       {
           "email": "",
           "provider": "",
           "user": "",
           "createdAt": ""
       }
   ],
   "experience": {
       "skills": [
           "",
           "",
           ""
       ]
   }
}

errors:

  • (404), 'User does not exist'
  • (404), 'Experience does not exist. Contact support.'
  • (500), 'Error in accessing experience. Error:'
  • (500), 'Error in accessing closed projects. Error:'
  • (500), 'Error in accessing open projects. Error:'
  • (500), 'Error in accessing credentials. Error:'
  • (500), 'Error in accessing user. Error:'

[Login] Login error don't return enough data.

Describe the bug
When user without profile login, the server will return error to notify client about it. However, the client doesn't return a uid and credentials for profile creation process.

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.