acm-uiuc / core Goto Github PK
View Code? Open in Web Editor NEWThe infrastructure powering ACM@UIUC
Home Page: https://acm.illinois.edu
License: Other
The infrastructure powering ACM@UIUC
Home Page: https://acm.illinois.edu
License: Other
On the RP page (https://acm.illinois.edu/reflectionsprojections) the 2020 link for RP links here: https://2020.reflectionsprojections.org/ which doesn't exist. It should instead link to http://reflectionsprojections.org or that link should be removed.
At the moment Core only support Google OAuth for students and faculty. It is possible the over the next few years incoming students will not have Gsuite account associated with their @illinois.edu
emails. We should support Microsoft OAuth since these students will likely be transitioned to outlook backed @illinois.edu
emails.
OAuth poviders have already been abstracted behind a unifying interface under service/auth/provider/
. A new OAuth provider implementation for Microsoft should be added in that folder.
Currently the authorization middle simply returns a string error if the user does not have the correct authorization for the endpoint. We should return a json error for REST endpoints and a rendered HTML page for interactive endpoints.
The authorization middleware lives under middleware/
. It will need to be modified to take a parameter which indicates if the route we are operating on is a REST endpoint or a web page endpoint. Based on that parameter the string errors should be converted to json errors for a rendered authentication error webpage.
Fix the alignment of the logout button in the navbar. Some CSS or bootstrap classes might need to be copied from the Login button to the Logout button.
Currently errors just return a vague raw text string which is rendered in the browser for the user to see. We should have a proper error page that has the standard header and footer and provides more information about how the user can resolve the error. (ie. If you try to access intranet before creating an account or are not a paid member there should be instructions about to be create an account or become a paid member).
It links to www-s.acm.illinois.edu which is broken. Once we do a larger redirect cleanup, we can put it back.
Currently there are large amount of user visible data embedded with functions of the site controller. We should store this information in a yaml file under data/
and provide a service and can read this data and parse it into a struct which can be then rendered into the page.
Currently developers must set up their own local instances of MySQL for Core to interact with. Instead we should default to using sqlite3 in development mode. Doing this will further streamline the development environment setup for contributors.
The already exists an abstraction layer in database/
which hides the exact implementation of SQL utilized. We should switch to initializing a sqlite3 database when an environment variable is set (Perhaps SQL_IMPLEMENTATION=(mysql|sqlite)
). Additionally we need to ensure that all SQL statements executed by our codebase are compatible with both sqlite3 and mysql.
Since production utilizes mysql, we should continue to run the unit tests on github action with mysql.
Currently there has been minimal work around improving the development experience for developers which do not have any access to production resources. In order to mitigate this impact the following improvements should be made:
data/
folder instead of the production data on GitHub.make dev-reset
which will reset the state of the development environment (wipe DBs, re-run migrations, etc.)make dev-run
which will spin up Core in dev modemake dev-*
targets.Update groups.yaml to make sure that SIG meeting times, chairs, and committee information is accurate.
Since Core is intended to be a small replacement for only the minimal set of services requires to ACM@UIUC's website and user management, there needs to be a way for members to build extensions that can leverage Core for authentication, membership verification, and group verification. Therefore we will add an extension interface to Core which allows extension services to plug into the authentication pipeline for Core and get back a token which can then be included in future requests to Core for verifying user attributes.
Currently all of the user account information and resume metadata / files only exists in the groot based infrastructure. This data needs to be transferred over into the new Core based infrastructure.
We intend for recruiters to login via LinkedIn in order to verify they are the owner of the email address we have created a recruiter account for. The OAuth provider interface needs a LinkedIn implementation for this to be completed. Additionally there are a couple places in the auth code which might need to be tweaked to allow for multiple OAuth providers that have different enforcement criteria (ie. We should also enforce @illinois.edu
emails for student / faculty login and not recruiter login).
This should be removed if not a current sponsor, otherwise please just close this issue lol.
Found on the sponsors page here: http://acm.illinois.edu/sponsors
The majority of the HTML and Less which powers the site has been copied and pasted through multiple generations of ACM@UIUC infrastructure. As a result there is a lot of unused code, poorly named elements, etc. which would greatly benefit from a cleanup.
Currently we do not record the time at which a resume was uploaded. We should record this information in order to track how often resumes are being updated.
This can be accomplished by:
This should be changed to [email protected] so that we can receive those emails
Edit, this is on the about page, here: http://acm.illinois.edu/about
Should be updated to [email protected]
There are bubbles for socials in the bottom right. There should be one added for our Instagram and Discord
Instagram link: https://www.instagram.com/acm.uiuc/
Discord link: https://discord.gg/tshGb99gF7
Currently we do not record the time at which a user account was created. We should record this information in order to track how our membership has changed over the years.
This can be accomplished by:
Right now, ACM uses venmo or PayPal to collect its new paid memberships (reminder: don't need to pay to be a member of acm or participate in anything). Incorporating the Stripe API to set up billing, and allow students to directly login to the portal and securely pay for membership would be a natural expansion/integration of this system, and make it more convenient for people who decide to become paid members.
Currently there is still a lot of copy embedded with the HTML page templates. We can extract these copy out into yaml files and inject the data into the templates at render time. This is make it easier for us to separate data and code and make quick tweaks to the content on our pages.
The HackIllinois and Reflection | Projections pages are generated from template data. You can their data under data/
and their HTML templates under template/
. The goal is to do the same thing for the other content heavy pages in the site.
This list of links should include our linktree: linktr.ee/acmuiuc
This can be found here after you sign in: https://acm.illinois.edu/intranet
Currently the resume book displays all resumes in an ordered table. We should add the abilility to filter resume's based on all the metadata that we have associated with them. We should also allow for sorting the resumes based on a specified field of the metadata.
This can be done by having the resume book endpoint take a filter in the query string which is uses to decide which resumes to render into the template.
On the front end there needs to be form on the resume book page which allows setting filtering options. Submitting the form should reload the page with the correct filter as a query parameter.
Currently there are unit tests which depend on data from the production data/
folder. As a result, changing this data can break the tests. We should have a test/data/
folder has a snapshot of the production data and use that for the unit tests.
This can be implemented by copying data/
to test/data/
and then overriding GITSTORE_BASE_URI
to read from the test data folder.
Right now the #main-container element is partially aligned to the left and smaller than the title above it. It should be expanded and center aligned. This should be some small bootstrap changes.
This email should be updated to
This is found on the sponsors page: http://acm.illinois.edu/sponsors
Currently the user manager displays all users in an ordered table. We should add the ability to filter users based on all the metadata that we have associated with them. We should also allow for sorting the users based on a specified field of the metadata.
This can be done by having the user manager endpoint take a filter in the query string which is uses to decide which users to render into the template.
On the front end there needs to be form on the user manager page which allows setting filtering options. Submitting the form should reload the page with the correct filter as a query parameter.
Many SIGs/committees have multiple meeting times throughout a week. The groups.yaml
andsigs.html
webpage can be modified to support this. (This could be a good starting point for someone to learn the codebase!)
Potential groups.yaml
schema change
sigs:
- name: AIDA
description: Artificial Intelligence and Data Analytics
chairs: Jeffrey Lai, Arjun Gupta, Shaw Kagawa
website: https://aida.acm.illinois.edu
email: [email protected]
meetings:
- topic: Data Analytics Workshops
time: 'Sunday 2:00 PM - 3:00 PM'
location: Siebel 1105
- topic: AI Workshops
time: 'Wednesday 5:00 PM - 7:00 PM'
location: Siebel 1109
After room reservations came in, we need to update the SIGGraph meeting time again. The new info is:
name: SIGGRAPH
description: Special Interest Group for Computer Graphics
chairs: Sahil Patel, Stacy Zheng, Michael Korenchan
meetings:
- topic: General Meeting
meetingTime: 'Mondays 4:00 PM - 5:00 PM'
meetingLocation: Siebel Center for CS rm. 1103
website: https://acm-uiuc.github.io/siggraph/
email: [email protected]
@ASankaran If you have thought about how you would generally integrate extensions and want to document it we would definitely all appreciate it. Otherwise, we can come up with a design pattern
Currently there is no way to delete a resumes. We should add that functionality to the backend and add a button for it to the frontend. The backend code and endpoints should be similar to the user deletion endpoint. On the frontend there should be a delete button next to the current approve button that shows up for unapproved resumes. Additionally approved resumes should have the delete button available.
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.