Coder Social home page Coder Social logo

dscnitrourkela / project-dates Goto Github PK

View Code? Open in Web Editor NEW
12.0 4.0 16.0 1.27 MB

Backend Repository | Avenue for NITR

Home Page: https://dates-docs.web.app/

License: MIT License

TypeScript 98.75% Dockerfile 1.25%
graphql graphql-server nodejs javascript apollo-server backend dsc-nit-rourkela hacktoberfest

project-dates's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

project-dates's Issues

verifying NITR mail from server side

On request to elevate a level1 user to level2, we double check in firebase if the Roll Number is actually verified inside Firebase by checking from the user objects.

Upgrade Node.js Version

Latest Node.js version is 14 for LTS.
Do check if our code works as expected for v14. If so, request all developers to use v14.
Switching to LTS sooner will be easier than down the line when some things may break
https://nodejs.org/en/about/releases/

Feel free to close this with a comment if all works good

Update to DB Model (Call Notes)

let Timetable{
    _id
    user: User._id
    identifier: User.rollNumber
    slotInfo{
        TA:Course._id
    }
}

let Course{
    _id
    subjectCode
    name
    ltp
    credit
}

let User{
    absents[
        {
            course:Course._id
            dateTime:Array(Date)
        }
    ]
}

let CommunicationDirectory{
    name
    department
    designation
    officeLine
    roomNumber
    location
    email
}

let Location{
    name
    description
    phoneNumber
    category
    coordinates{
        lat:11
        lng: 11
    }
    workingHours{
        weekday:{start:time, end:time}
        sat:{start:time, end:time}
        sun:{start:time, end:time}
    }
}

Add nested querying functionality for graphql APIs

Add functionality in grpahql schemas so as to facilitate nested querying in APIs
For Example-
A basic query is-
users{
username,
name
}
A nested query is
users{
username,
name
clubs{
clubname
facad
}
}

Announcements Section

A dynamic view on the home page which has the announcements that could be set from somewhere. The data entry interface is not decided yet. But the client should be able to retrieve the announcements.

Schema Suggestion

{type: "TEXT",Data:"something"}

The type of field denotes the type of announcement. It could be an image, document or plain text.

Follow Dependency Injection

Presently for the tests, the server is created with static permissions as we haven't figured out how to pass the headers through the createTestClient object, would have to take a deeper look at it.
Doing that would open up a lot of possibilities and simply things for testing.

Setup Docs Actions

  1. Existing Actions deleted as it was getting false triggered on every push
  2. Updated Plan, generate docs in action(not to store in repo). And push to server/Firebase or equivalent.

Refer 25ca0f4 for the former docs.yml code

Add rulebook to events

Is your feature request related to a problem? Please describe.
Rules should be added to events in the form of links.

Add Event API

with the field mentioned in the design, create a graphQL Mutation which would handle the event creation.

FieldResolver populates already populated fields

Whenever a field resolver tries to populate an already populated nested field, it throws a "Maximum Call size exceeded Error".

Steps to reproduce

  • generate JWT of a new user
  • use authUser mutation and request for clubAccess

Fix

The field resolvers should be intelligent enough not to populate the already populated objects which not only would avoid the error, but also helps the datasources send in the populated nested field if it already has it.

Setup PM2

  1. Separate PM2 config for prod and dev
  2. Use PM2 watch
  3. Add PM2 to scripts

Remove Members from Clubs

A club admin should be able to remove any member.

Input:

  1. userID

Process::

  1. Remove the record from clubAccess of user record
  2. Remove the record from memberAccess of Club Record

"People interested" for Events

"People Interested" is a property of an Event. It could be thought of as likes for a post.

Todos

  • Add field in Event schema
  • Make Mutations to update the field in both Event and User Object

Add GraphQL APIs for Club and Event Management System

  • Add CRUD APIS for various schemas related to clubs, events, user management
  • Add automatic map associations functionality between schema during update operations
  • Seperate production and development databases for APIs

Add Story API

with the field mentioned in the design, create a graphQL Mutation which would handle the story creation.

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.