devcom-iitb / instiapp-api Goto Github PK
View Code? Open in Web Editor NEWDjango quasi-RESTful API for InstiApp!
Home Page: https://insti.app
License: GNU Affero General Public License v3.0
Django quasi-RESTful API for InstiApp!
Home Page: https://insti.app
License: GNU Affero General Public License v3.0
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.
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.
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.
After the body is created, the persons should be able to create roles. #46
This issue serves as a tracker for each endpoint. Create a separate issue for each.
With priority for Events, implement pagination and other filtering at server side.
Common privilege for roles #46
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.
Will help to prioritize content easily. Currently only hyperlinks are returned.
Events can be tagged and users can mark tags as interested. The prioritizer will give more weight to tags with interests.
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.
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.
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.
We want at least the person's name and roll no. Revoke the token and show and error if these aren't there.
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.
See if it's possible to implement retrieving UserEventStatus relations using a ManyToMany field. Something similar here
If present, the client may want to show a separate button to open it.
Institute roles (for now) mainly relates to creating bodies #46
Logs should not be verbose, but include critical information including creating and modifying entities, and managing user permissions etc.
An endpoint for getting mess menus of the user's hostel
All logged-in user endpoints at #28
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.
Common privilege for roles #46
When inheritable is true, the role should satisfy all children bodies of the body recursively #46
Implement the User Permissions model which will assign permissions to users for creating events for bodies etc.
Tracker for authorizing various endpoints
Featured events (similar to promotional) will have an extra weight which can be added only by users with high elevation.
Only the user themselves should be able to update UserProfile #46
Why does our API spec violate every industry convention?
This is a nice list, you'll find the same elsewhere.
More specifically:
Create a separate role permission
#46
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.
Whole list of logged-in endpoints at #28
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
Common privilege for roles #46
Events should be prioritized by the server and attached "weights". This would involve writing the algorithm used to prioritized, which can initially be empirical.
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.
Are there plans to implement featured events (events that will be shown with priority to everyone regardless of whether they are following the bodies)?
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.