GithubHelp home page GithubHelp logo

akevli / research-bay Goto Github PK

View Code? Open in Web Editor NEW

This project forked from dpopat/research-bay

0.0 0.0 0.0 920 KB

:mag_right: Research Bay is a web platform for efficiently connecting students to research opportunities and professors.

Home Page: https://research-bay.web.app

License: MIT License

research-bay's Introduction


Logo

馃攷 Research Bay

A web platform for efficiently connecting students to research opportunities and professors
WebsiteDemo

Code Repository Links
MainFrontendBackendData/ML

Table of Contents

About

Demo 1
A screen shot of a sample professor user's "postings" page for managing their open student research positions

Research Bay is a community-driven project built by students at the Developer Student Club at University of Illinois at Urbana-Champaign (UIUC) that aims to provide a streamlined and standardized platform for UIUC professors and students to easily connect with research opportunities and talent.

Background

University of Illinois has thousands of research opportunities for students every year. However, many are unaware of what research opportunities exist. Currently, there is no standardized way of discovering or pursuing research with professors. To land a role, students must search for willing professors or hunt through physical job boards and endless department emails to find research programs and opportunities.

This is a serious community issue because research is essential for allowing students to gain hands-on experience, form professional connections with professors, and contribute to potential advancements in the field. Likewise, professors heavily rely on student talent to advance their projects.

Solution

Research Bay aims to provide a streamlined and standardized web platform for UIUC professors and students to easily connect with talent and research opportunities. Users are able to create personalized profiles focusing on their research interests. Professors can post research positions and be recommended best-fit students while students can search postings and be recommended research positions.

DSC Solution Challenge

Research Bay is a project originally created to be submitted to the Developer Student Club program's annual Solution Challenge for 2020. As a result, the DSC @ UIUC team consistently strived to develop the project focused on the contest's grading criteria.

DSC Solution Challenge Criteria

Structure

Research Bay Diagram

Research Bay is built as a scalable web application that uses the principles of REST and Serverless to be efficient, modular, and open to future expansion. It is separated into two main components: a React.js frontend app and a Serverless backend API powered by multiple Firebase/GCP services, such as Cloud Functions, Storage, and Firestore. The React.js website is currently deployed using Firebase Hosting and is available here. A mobile app in Flutter for Android is currently in the planning stage and would easily integrate with the existing backend.

For organized development, Research Bay's code is divided into the following three public Github repositories:

More detailed documentation specific to each component can be found in each repository's README file.

Technologies

The following is a non-exhaustive, general overview of the various tools that are used to develop Research Bay.

Getting Started

Due to the structural nature of Research Bay, attempted changes to its internal Firebase deployment by external users will be rejected. Thus, a new Firebase and Algolia project must be created to deploy your own full instance of Research Bay (both frontend and backend). However, all of Research Bay's code is publicly accessible. Please follow the guide below to get started.

Prerequisites

The latest versions of the following software are required:

Creating a Firebase Project

  1. Navigate to the Firebase Console

  2. Click "Add Project"

  3. Follow the on-screen prompts. Disable Google Analytics.

  4. Once the project is created, enable and setup the following Firebase services:

    • Authentication
      • Enable only the Email/Password sign-in method without email link.
    • Database (Firestore)
      • Set to production mode.
      • Once provisioned, create the following collections (schema isn't important yet): postings, profiles, users
    • Storage:
      • Once provisioned, create the following folders within the default bucket: picture, resume
    • Hostings
    • Functions

Instructions for better security rules for Firestore and Storage will be updated once the Research Bay team determines those that are fit for the project.

After the Firebase CLI is installed and the project has been created, do:

firebase login

Setup

Frontend

git clone https://github.com/DSC-UIUC/rbay-frontend.git rbay-frontend
cd rbay-frontend
npm install
npm start

The React.js website should launch at localhost:3000. Please post any issues with setup here. To deploy to Firebase Hosting, please follow detailed instructions here.

Backend

git clone https://github.com/DSC-UIUC/rbay-backend.git rbay-backend
cd rbay-backend
firebase init

When prompted, select to only initialize Firebase Cloud Functions. Afterwards, do:

cd functions
npm install
cd ..
firebase deploy --only functions

The Research Bay Cloud Functions should now be deployed. Any local changes to function code must be manually deployed to Firebase in the future.

Data/ML

git clone https://github.com/DSC-UIUC/rbay-data-ml.git rbay-data-ml
cd rbay-data-ml
cd recommendation_algorithm
gcloud functions deploy main --runtime python37 --trigger-http --allow-unauthenticated

The Recommendation Cloud Functions should now be deployed. All local changes will need to be redeployed to update GCP.

Usage

Please refer to Research Bay's three repositories and their respective READMEs for additional details, documentation, and examples.

Future Roadmap

Release

With much of Research Bay's core features largely complete, the team has started planning for Research Bay's eventual public release to the University of Illinois population. Once all features and sufficiently refined, tested, and finalized, the team expects to begin a limited release of Research Bay to groups of selected students and professors at UIUC sometime in fall 2020 to gather more user feedback, make any necessary updates, and gradually prepare for a full release farther in the future. Ideally, Research Bay could expand to other universities to continue its mission in new regions.

Continued Development

The Research Bay team also plans to continue development and maintenance of this project. Current plans are briefly described below, listed in order of short-term to long-term goals. Future development will continue to emphasize scalability, clean design, and better user experience.

  1. UI Additions / Improvements
    • Local filtering for search and recommendation results
    • View and edit requirements for postings
    • Faster loading times for actions
    • Style / theme changes
  2. Backend Code Optimizations / Speedups
    • Improve function code to reduce latency between client and server
    • Remove redundant DB queries
  3. Recommendation / Search System Improvements
    • Larger, more generalized training data
    • Test with more user profiles and postings
  4. Mobile app
    • Would be a new frontend interface to expand Research Bay's availability and reach
    • Easy integration with existing backend
    • Develop in Flutter

Team

Research Bay was originally developed by student members of Developer Student Club at UIUC in the 2019-2020 school year. All students who made a non-trivial effort and contribution to this project are below. Special thanks to all of these hard-working students! 馃槃

Student Role Team
Keon (Isaac) Park Lead Dev, Mentor Frontend, Backend
Dhvanil Popat Dev Frontend
Rutu Brahmbhatt Dev Frontend
Alex Li Dev Frontend
Thomas Yang Dev Backend
Steven Pan Dev Backend
Aditya Sriram Dev Backend
Neil Reddy Dev Data/ML
Jonathan He Dev Data/ML
Reetahan Mukhopadhyay Dev Data/ML
Kavi Ravuri Mentor Backend

Contributing


DSC at UIUC

Research Bay is developed and maintained by students in Developer Student Club at UIUC. If you are interested in contributing to this project or joining the club, please reach out to club staff at [email protected]. DSC @ UIUC will resume new member recruitment in fall 2020, and more information will be posted on the DSC @ UIUC website.

License

Distributed under the MIT License. See LICENSE for more information.

Contact

Please feel free to email the DSC @ UIUC staff at [email protected] with any questions or concerns.

Acknowledgements

Special thanks to:

research-bay's People

Contributors

parkkeo1 avatar neilr1 avatar dpopat avatar stevenxpan avatar

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.