omshub / website Goto Github PK
View Code? Open in Web Editor NEWUnofficial reviews site for Georgia Tech's Online Master of Science (OMS) programs. Contact: [email protected]
Home Page: https://omshub.org
License: GNU General Public License v3.0
Unofficial reviews site for Georgia Tech's Online Master of Science (OMS) programs. Contact: [email protected]
Home Page: https://omshub.org
License: GNU General Public License v3.0
Is your feature request related to a problem? Please describe.
As an outcome of #10, scaffold some basic Playwright tests to ensure core functionality works as expected.
Describe the solution you'd like
Playwright tests that exercise core functionality of the site. Tests should run against Vercel preview builds in PR branches and against prod after merging to main.
The scope of the initial work should cover:
Is your feature request related to a problem? Please describe.
Keep site data up-to-date
Describe the solution you'd like
Web scraping the data, clean and insert into relevant tables in db. Scrape both omscs official site and omscentral on a daily basis, clean and normalize the data, then update relevant tables.
Describe alternatives you've considered
ools to consider here are python scrapy for scraping data, and python pandas to normalize and clean it. Some relevant tables also should be added to the DB
Additional context
The data should be extracted into an 'offline' db, so in case of an error in scraping the data of the site is not deleted. Maybe more thinking should be taken into account how the data is being passed from the 'offline' db into the production one
Is your feature request related to a problem? Please describe.
OMSCentral displayed a simple arithmetic mean for all available metrics (workload, rating, difficulty etc). This may be misleading as course syllabus, instructing team and logistics change over time.
Describe the solution you'd like
Keep the overall metrics and display additional data only for the last two semesters (or a reasonable lower bound).
Describe alternatives you've considered
Display a graph of the metrics over time (similar to steam ratings).
Should we enable the option to automatically delete branches after its associated PR has been merged?
This helps keeps our branch list clean, and is not a destructive operation (we can always restore deleted branches).
Similar to #22 a discussion should be had with Mehmet (possibly Martz too) about any collaboration, relationship, etc... with OMSCentral. It would be in the best interest of the community to have one site and not two and cannot emphasize enough the gratitude the community has for OMSCentral, but one that is community owned is probably best.
Is your feature request related to a problem? Please describe.
There can be hundreds of reviews and hard to pull out themes of the reviews
Describe the solution you'd like
A wordcloud of the content of the reviews could be interesting to see what stands out in the reviews
Describe alternatives you've considered
N/A
Additional context
N/A
Is your feature request related to a problem? Please describe.
Not a problem, but it would be interesting to make details on the website visible.
Describe the solution you'd like
By that I would mean seeing how many people visited each month, which courses were most viewed, etc... I'm not fully certain what is possible, but the more transparency the better. Here's some reddit stats that are similar to what I had in mind, or ones from Google Analytics.
Non-profits are allowed to use Georgia Tech branding provided they obtain permission from the licensing office.
https://licensing.gatech.edu/off-campus/non-profit
This should be done once we close #9 and have an MVP.
Is your feature request related to a problem? Please describe.
The core issue inspiring this site was the paywall going up on OMSCentral.
Describe the solution you'd like
To inspire confidence in a new site by users, all financials related to the site should be transparent, costs, donations, etc... Probably a quarterly or yearly report on server costs, maintenance, etc... with how many people donated money.
Add a markdown file describing the general overview of the app & architecture, how to run locally, etc. May involve pulling some information out of / trimming down the general README
Is your feature request related to a problem? Please describe.
What is the end user authentication scheme we should use, if any?
Describe the solution you'd like
First, we should decide if we are going to need a user authentication feature, and when.
Second, we should determine what's the best authentication scheme for our use case. Should we go with something like Auth0, Firebase Authentication, et cetera.
Describe alternatives you've considered
Without getting to far into our plans for end user authorization, I think we need authentication to allow us to tie reviews to individual users and give them provenance over their data and allow operations such as "delete my review".
A "nice to have" feature would be to ensure that people signing up have a gatech email address
One possibility is that we don't have any authentication system. Everything remains anonymous, we simply don't know! Just like anyone can see all the reviews, anyone can post a review. This would imply that reviews cannot be deleted, at least by end users. This might also mean that we have to "clean up" obviously fake reviews and spam content, so we might need a reCAPTCHA or other mechanism to avoid that.
Additional context
OMSCentral currently has user authentication. The authentication system is using Firebase, and there are user specific tasks: like add a review, or delete a review. OMSCentral has not always had authentication.
Is your feature request related to a problem? Please describe.
It is a bit presumptuous to call us OMSHub as that just means "Online Masters in Science Hub" so kind of implying all other online masters in science are applicable, but definitely we don't mean that at the moment.
Describe the solution you'd like
Have a landing page where you pick your university and directs you to gatech.omshub.com or uiuc.omshub.com or utexas.omshub.com, etc...
Additional context
This is very much not a MVP feature and likely not a feature we will ever implement, but it is worthy of discussion and consideration.
Currently there is no logo for OMSHub and one would be needed for branding purposes. Note we cann0t use Buzz from GA Tech
Prerequisite: #1
Scope:
Prisma is a good library to consider. It would provide out of the box:
It has good documentation and integrates well with next.js.
Is your feature request related to a problem? Please describe.
In order to be sure everyone is clear on the data, we need a Terms of Service to be clear on what is being done with the data
Describe the solution you'd like
A ToS page for people to view
Add a GitHub Actions job to execute yarn lint
and also ensure Prettier formatting rules have been followed.
This job should run on branches with an open PR to provide quick feedback to authors.
Is your feature request related to a problem? Please describe.
Reviews are given with not discussion
Describe the solution you'd like
Allow for commenting on reviews to have discussion on what is in a review.
Describe alternatives you've considered
This may encourage some trolling, or useless chatter. I feel we would need to enable notifications to the reviewer to let them know about a comment.
Additional context
N/A
MSCSHub/MSDSHub should be investigated for what features to copy to a new site to make the site more useful, but without being too cluttered. After exploration new issues/feature requests should be made.
In order to make the website more useful for students, resources/guides could be added to the site to help future students. Such things could include "How to do research" "how to prepare for classes" and similar. Though this could be similar to some of what is on wikidot, omsa.ga/omscs.ga so there would need to be a means of not overlapping, and augmenting.
Is your feature request related to a problem? Please describe.
Ideally this site would be at least semi-officially supported by GA Tech, Dr. Joyner for example, possibly with funding support but at least approval.
Describe the solution you'd like
Once MVP is basically done, have a discussion with Dr. Joyner about the future of the site and how this site could work with GA Tech.
Is your feature request related to a problem? Please describe.
New students usually ask the same questions every semester in Reddit and Slack.
Describe the solution you'd like
Add an FAQ page with well written answers to common questions from other sources and provide attribution.
Is your feature request related to a problem? Please describe.
UT Austin has some fantastic course maps: https://mscshub.com/courseMap It'd be great to have similar
Describe the solution you'd like
Would probably be best to make one per specialization, and to basically copy what they did, I made a sample of a rough draft of a ML spec one below. Would need some community help to figure out how it should look for all the various specializations/tracks/courses. Further how/should non-spec/track courses be included?
Once established, document the overall system architecture, including third party services used, access instructions, etc.
Creating a devcontainer config would allow VSCode users the ability to instantly spin up a local development environment via Docker, with all dependencies (like NodeJS, yarn, and stuff we'll add in the future) installed and ready to go.
Devcontainers can be executed locally and also on Codespaces.
In preparing the legal paperwork to establish a non-profit entity, we will first need a charter. Please list the following items:
Name of Organization
Purpose or the org.
Goal of the org.
Board structure (i.e. 5 people, 2 year terms, staggered - director, secretary, treasurer, member, member)
Will be setting up non-profit (501-C3) in Delaware or Nevada. Please let me know of a reason you cannot use one of these states.
Is your feature request related to a problem? Please describe.
A review site would be seen by a number of recruiters, users, etc... and having a job board could allow for them to advertise positions at their company. In theory it could allow for the site to be self-funding without requiring donations.
Additional context
This would be fraught with all sorts of potential issues, how to post, how to charge, if to charge, etc... This should be discussed, but not until later.
With this feature we can:
We need to:
Let me know if it makes sense, thx
I think this will be useful later on as we get the website going and might need help with funding!
We should consider using Terraform to configure our Vercel resources (project, custom domain, and deployments). This gives us a repeatable way to deploy our infrastructure, and acts as a form of documentation. The Terraform code can live in a separate ops
repo or similar.
Links:
Is your feature request related to a problem? Please describe.
Generally reviews are sorted by posting time so only the most recent reviews are at the top, which is not always the most helpful.
Describe the solution you'd like
There should be the ability to upvote (and maybe downvote) reviews to all the most helpful ones to rise to the top.
Describe alternatives you've considered
Only allow upvotes to not allow downvote brigading, but I don't think that'll be a big issue.
Additional context
This is implemented on the UT Austin's MSCSHub
Build out key critical components using MUI for use throughout the application
👋 Hey folks! I have a bunch of questions on how we'd like to set up our infrastructure and deployment process. We can try and use this issue as a dumping ground for now, and break down the work into standalone issues as the tasks become clear.
(This may be a little premature, but fun to think about!)
Is your feature request related to a problem? Please describe.
There is no specific reason why the site could not be used by on campus undergrad and graduate students and one expects it would be useful to them as well. However it would dramatically increase the scope of the project and we would need contacts on campus to make it happen.
Additional context
Not MVP or even 2022 goal I think, but worth keeping in mind.
Is your feature request related to a problem? Please describe.
Often times there is a desire to make the data available to others without needing to scrape the website, this would make it possible.
Describe the solution you'd like
There should be a download button or something to that extent to download the reviews to a csv, tsv, excel, or similar format.
Describe alternatives you've considered
csv probably won't work, but a tab separated, or excel, could be a few options, but should be something anyone can download and use.
Additional context
We would have to consider the Data Governance #28 policy to make sure it aligns with making this happen.
Is your feature request related to a problem? Please describe.
There should be a way for our end users to search over the collection of reviews for a specific course.
Describe the solution you'd like
On a per course basis, there will be a "search" menu on each page, where in the user enters a string, and we narrow the results returned to only include those reviews that have a match.
It's also possible to "fully feature" this, and add additional filters, like date ranges, filter by ratings, hours, difficulty, et cetera which will be marginally extra effort for a lot more utility.
This will allow our end users to ask questions like: "what did my fellow OMSCSers think of the final in ESO?", or "Maybe distributed computing isn't that hard, what do the positive reviews say?", or "what do the old timers think of Computational Journalism".
Describe alternatives you've considered
I am proposing that we implement search as a server based feature that queries the database and directly returns the results. It's also possible to make a site's search work via a third party service, like ElasticSearch. However, I don't think we'll need this level of sophistication/complexity given that our search domain is homogenous (course reviews) and the number of reviews per course pretty low.
Is your feature request related to a problem? Please describe.
Generally OMSCentral was focused on OMSCS, and a new website should be inclusive of OMSA and OMSCY, see the MSCSHub and MSDSHub for examples. OMSA/OMSCY must have buy in to the site for it to be successful and part of conversations
Is your feature request related to a problem? Please describe.
The site lives and dies by its data, and currently we would need to start from scratch, even OMSCentral started from a Google Doc originally so it had data.
Describe the solution you'd like
Need to determine two things, if we can use the data at all, and if Mehmet would allow us to get a database extract to load.
Describe alternatives you've considered
Start from nothing and build it.
Additional context
Lots of potential legal issues here and would have be very clear as what can be done.
Determine centralized ownership:
Is your feature request related to a problem? Please describe.
There are many possible licenses to use for this project, MIT, GPLv3, etc... we need to pick one - https://choosealicense.com/
Configure the project with unit testing frameworks and tools.
Scope:
We currently have two integration branches:
dev
which deploys to dev.omshub.orgmain
which deploys to omshub.orgThe repository is configured with dev
as the default branch. This means that when a PR is merged, it will deploy into a "development" version of the site. An additional PR needs to be created to merge the dev
branch into main
to deploy to the production site. This method is sometimes known as Gitflow and is one of two commonly used Git workflows, with the alternative being [trunk-based development])(https://www.atlassian.com/continuous-delivery/continuous-integration/trunk-based-development).
We should decide if we want to adopt trunk-based development or stick with the Gitflow-style model we currently have. I am biased towards the former, but I'm also more than happy to back Gitflow if that's the decision of the community -- this is our project, so we should all have a say.
Trunk-based development has the following advantages:
dev
for previewing changes. My philosophy with dev environments in general is that they should be ephemeral; created when needed and destroyed when irrelevant.Where trunk-based development falls short is long-lived dev or test environments, particularly for user testing (these are great points made in the Slack thread below). My counter to this is that we should make small PRs (changing one component at a time), or spin off an ad-hoc integration branch when it’s warranted (if we’re doing a big redesign consisting of a large collection of PRs). Ad-hoc integration branches work nicely for user testing too; we can cherry pick the relevant commits into a branch that’s named after the purpose of the test.
I really want to optimise our Git workflow for the common case, which is regularly deploying small changes into production.
Is your feature request related to a problem? Please describe.
Add Google Lighthouse to current workflow
Describe the solution you'd like
Add and configure Github action
Describe alternatives you've considered
None so far but might consider adding any other tools that will assist with increasing page rank.
Additional context
N/A
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.