Coder Social home page Coder Social logo

devcom-iitb / instiapp-api Goto Github PK

View Code? Open in Web Editor NEW
22.0 4.0 74.0 2.83 MB

Django quasi-RESTful API for InstiApp!

Home Page: https://insti.app

License: GNU Affero General Public License v3.0

Python 97.82% HTML 2.18%
iitb instiapp django api django-rest-framework hacktoberfest2021 hacktoberfest

instiapp-api's People

Contributors

abhishek2x avatar amanmoon avatar arya2331 avatar ashwinramachandran2002 avatar atharv140903 avatar bavishhh avatar dependabot[bot] avatar dev9318 avatar dgibn avatar e-aakash avatar harsh-kr-jha avatar hrushikeshbodas avatar jawharjoe avatar krishna-baldwa avatar mrunzzz avatar palmit2002 avatar pulsejet avatar samjakes avatar sanskargosavi2003 avatar scimaths avatar srbh001 avatar sshivam95 avatar tastelessjolt avatar theflash98 avatar themaskedman981 avatar unstablebrainiac avatar vibhav011 avatar vibr0x avatar vk0812 avatar ydidwania avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar

instiapp-api's Issues

Removing IITBappenv

Apparently, the build environment was also accidentally pushed to git, so now a history rewrite would be required to fix the repo, which has become thousands of objects as a result of this. Should be done ASAP, as this would diverge everyone's forks and local branches.

Implement refreshing with refresh token

The refresh token given by SSO should be stored and used to refresh the profile when it nears expiry. The expected behaviour is that if the user revokes the token, then they should be logged out.

Implement Event Archive

Events marked as archived will not show up in the regular feed, but are still accessible through a separate section. Create a separate issue for automatically archiving old events once this is done.

Pull Program details from SSO

Pull details such as program of study, year of study and expected year of graduation from SSO. These fields also need to be added to the UserProfile model first.

Implement event tagging

Events can be tagged and users can mark tags as interested. The prioritizer will give more weight to tags with interests.

Setting up automated testing

wercker offers a free CI/CD service for private repos, so we can use it to automate testing. I've setup the same on my fork (check the README) and it runs the tests as expected.

@ydidwania you can set it up on this repo too (would've done it, but it needs admin rights). You will need to set the WERCKER_SOURCE_DIR environment variable to $WERCKER_ROOT/backend. I've already added the YAML which should work as expected.

Pull Hostel Information from SSO

When logging in, check if Hostel information is present in SSO and pull it in if yes. Update UserProfile models for storing this if necessary.

Use Graph API to pull data from Facebook

The number of people who have liked the content or the the number going/interested can be updated from Facebook events, if the creator provides a Facebook link. While doing this, make sure it is done only for active events.

Pull and store LDAP ID from SSO

This is returned as 'username' in the profile, provided we have the scope. If we don't, but we have the roll no. store that as a fallback.

Enable proper logging

Logs should not be verbose, but include critical information including creating and modifying entities, and managing user permissions etc.

Change default username from 'iitbuser' to id

The current default is a hard-coded "iitbuser". Since we desire some level of uniqueness (though this is completely optional, obviously), the default username should be the id returned by SSO.

Implement Featured Events

Featured events (similar to promotional) will have an extra weight which can be added only by users with high elevation.

API conventions

Why does our API spec violate every industry convention?
This is a nice list, you'll find the same elsewhere.

More specifically:

  1. There should be no verbs in URIs
  2. Using PUT and DELETE where appropriate is very important
  3. Singular/plural have been messed up in a couple of places
  4. Should specify proper nesting (e.g. bodies should inherently contain related events)

Implement Roles (proposed)

Each person who is supposed to create events for a body will have a 'Role', which will have permissions over the body. Any role may be satisfied by multiple users and a user may have multiple roles.

Return events with body

Returning all associated events with the body itself including HATEOAS should make working with the API easier. This will also reduce load times since the separate events call can take place only after the body call, adding another RTT. Children bodies may be returned without the events with self links recursively (should make caching effective).

May be implemented as a separate endpoint in case there are situations where it is unnecessary.

Note: The response size should not be a concern as gzip works wonders on JSON and we won't usually have >50 events for one body

Implement Event Prioritization

Events should be prioritized by the server and attached "weights". This would involve writing the algorithm used to prioritized, which can initially be empirical.

Implement Custom Venues

Some venues like Behind ED Lab may not have any reuse value, so there should be some mechanism to store them but not suggest them the next time a user is creating an event.

Featured events

Are there plans to implement featured events (events that will be shown with priority to everyone regardless of whether they are following the bodies)?

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.