Please contact [email protected] if you want to log in to our website
nus-lighthouse's Introduction
nus-lighthouse's People
nus-lighthouse's Issues
Mock RA Professor and Project Information
-
Create professor unique identifiers
-
Names
-
Status (e.g. Associate Professor)
-
Title: Head, Department of Information Systems and Analytics
-
Office location and phone number
-
Research Focus
-
Mock projects and various information found in the prototype (refer to prototype slide 15)[Store them in a nested structures]
-
Mock recent publications
-
Rmk: create a few actual professors and random generate data for the remaining
-
Rmk: when generating random data, try to generate from a set of names that make sense. For example, status is from { Associate Professor, Full Professor, Lecturer, ... }
-
Rmk: use random text generator for research focus
Set up production (master), staging and development branches
- set up different branches for different purposes (dev for development, staging for QA and master for production)
- set up master to be merge-only after approvals of PR
Build the Header Bar component & Section Header
Build the topmost Header component:
NUS LightHouse
(currently without the login icon)
Build the section header: Internship or Research Opportunities or Teaching Assistant.
No need to use tab to separate. Just a section name with some background color.
Build Background Statistics Component of a Position
Important: This component should be reusable for all three sections.
Put in the charts, with some random data.
Make sure it works when real data comes in.
Mock TA Modules
- Mock TA modules
- Use the module list consolidated from data lake as the basis
- Mock major, year, semester and module description
Consolidate Student Personal Data
- Extract data from the student personal data table
- Output format: { student_id: { country_of_citizenship: country, job_title: job_title, race: race, gender: gender} }
- Investigate employment-related features
Build 'Statistics about Past Interns' in Company page
Note: this issue is different from the other component of Statistics about Past Interns' in the Position Page.
Total number of past Interns: random number
Statistics about past interns (put charts with some random data).
Industry Page - Starting salary over the years
No data are available. Need to mock & justify.
Build the Search Bar Component at the Search Page
One search bar and the two filters should form one component.
Need to support autocomplete function based on variable storing all retrieved data (the data can just be statically encoded into the component for now)
Need to support filtering of primary search bar based on the other two filters
Build Future Trajectory Component of a Position
Important: This component should be reusable for all three sections.
Put in the charts, with some random data.
Make sure it works when real data comes in.
Make sure it works across all three sections.
Build 'Recommended for You' Component
It should be slidable.
It should be reusable for all three sections (Internship, TA, Professor)
Pictures: From external links as for now.
Text and Description: Randomly put anything (use variable).
Make sure to separate the data from the template.
Set up Backend on Firebase
- Create basic Vue web app skeleton
- Set up the web app to deploy on Firebase
- Configure the web app to use Firebase Realtime Database
Put monthly number of openings into position
Move the number of openings from under company to under each position.
Set up a JS Lint library to enforce JavaScript standards (as a test to pass)
- Set up a JS Lint library to enforce JavaScript standards as a test to pass
(Good to have)
Determine Data Storage Formats Required for Each Chart
Summary of Charts
- Overall TA charts
- Overall RA charts
- Overall major charts
- Overall industry charts
- Overall company charts
- Specific industry charts
- Specific company charts
- Internship position charts (background + future)
- RA position charts (background + future)
- TA position charts (background + future)
Tables
Refer to Google Doc
Mock Internship Companies, Positions and Related Data
- Take company names from GES (check Company Name_Recoded). If Company Name_Recoded is not what we want, need to mock company names as well
- Generate unique identifiers for each company (otherwise, we need to take the auto-generated IDs from Firebase). Use the identifiers to insert as keys on Firebase
- Mock company descriptions
- Mock company number of openings for 12 months as a list
- Generate unique position ID
- Mock position names
- Mock position descriptions
- Mock position application open month
- Mock Year
- Mock acceptance rate
Set up dummy test cases to pass before deployment is allowed
- Create dummy test cases and make sure that Travis CI allows deployment only if all tests pass
Build Reusable Components in Teaching Assistant Section
-
Slide 11: Reuse the 'Recommended for You' component from internships.
Reuse the charts component from the Research Assistant Section. -
Slide 16: Basic Information Component.
Build Reusable Components in Research Assistant Section
- Slide 8: Recommended for You & Search bar, use the one designed in the Internship Section. The other charts form a component.
- Slide 9: Research Positions: Basic Info: Reuse the company component.
Reuse the background statistics and future trajectory section from the Internship Section.
Current Projects: New component. Each project posting is a component.
Recent Publications: One component
Configure the web app to use Firebase Realtime Database
- Create basic schema for the Firebase database
- Set up the web app to use the Firebase database
Decide which modules to display
Use TFIDF Ranking technique to show relevant modules interns have taken.
Build 'Opening Positions' Component in Company Page
Make sure that the icons are in place, and can direct to a position page
Interaction with database
- retrieve URLs based on company ID (company_id should be a prop)
Consolidate Student Program Enrolment Data
- Fields: Academic Group, Academic Plan, Academic Program, Course Code, Degree, Department, Exchange Level, Faculty
- output format: { student_id: { (various fields) } }
- Rmk: use underscores in the variable names
Build the Basic Information Component for Company Pages
Build the first part of the basic information of a company.
Company Picture (any random url), Random text, Random name.
Need to set proper variables and ensure that when real data come in it works properly.
Build Reusable Components in Internship Section
Slide 1: Header Bar (Without login), No Tab (Internship), Search Bar (Without real function), Recommended for You (random pictures, random text),
Explore by: Industry (drop-down list, put in chart), same for Major.
'Company' is another component.
Slide 5: Company Random Picture, Random text, Random name. Need to set proper variables.
Total number of past Interns: random number
Statistics about past interns (put random pictures).
Opening positions (a component).
Slide 6:
Components:
• (Position Description, Name, Internship Period, company name, logo ).
• Position Details (put in chart)
• Background Statistics (put in chart)
• Future Trajectory (put in chart)
Remarks : randomly put data in the chart
Build the Recent Publication Component at each Prof's page
Put in some data and make sure it works.
Adjust the format.
Matching Starting Salary Data
Add Starting Salary into each position.
Think of how to justify the mocked data.
Run the App Locally and Deploy the App on GitHub
- run the app locally and try to deploy the app on GitHub
- may need to think of alternative skeletons if deployment fails
Set up Travis CI and Deployment Flow on GitHub
- Set up Travis CI for continuous deployment
- Set up dummy test cases to pass before deployment is allowed
- Set up production (master), staging and development branches
- Set up a JS Lint library to enforce JavaScript standards (as a test to pass)
Industry Page Components
- Slide 13:
Companies & Positions (Jobs): Share one component.
By default show popular ones. Positions displayed should be updated according to input.
- Slide 14:
Insights: One component.
Build the Current Projects Component at each Prof's Page
This is a new component containing all current projects.
Each smaller project posting is a smaller component.
It should support clicking and popping out feature (like the prototype). Make sure it works well with some random data.
Ensure that the app runs locally and is deployable on GitHub
Write Colab Notebook to Consolidate Extracted and Mocked Data for Insertion into Firebase
- consolidate the data into different datasets organised as discussed
- write code to insert the data into any given Firebase database link
Build Charts Component in RA Section Main Page
Build a component to take care of all the charts in the Research Assistant Main Page.
Important: This component should be reusable in the main page for Teaching Assistant.
Set up the web app to deploy on Firebase
- configure the web app to deploy on Firebase
Create basic Vue web app skeleton
- Create a basic Vue web app skeleton that is suitable for deployment with Firebase
Set up Travis CI for continuous deployment
- Configure Travis CI for web app
- Set up Travis CI to Integrate with GitHub deployment
Build Basic Information of a Position
This should apply to all three sections:
Build the component containing basic information of a position.
Set the correct format of a picture and text.
Store the data in correct format on Firebase
Map Graduate Paths
- map the graduate paths from GES table to students' information
- output format: { student_id: { starting_salary: salary, future_path: "PhD",future_industry: 'IT', graduate_course: "Aerospace Engineering", research_area: "Fluid Mechanics", PhD_university: "UCLA" } }
- Rmk: some data may need to be mocked. Data I/C may need to create a new issues to reflect this and assign to team members
Extract data from existing data lake files
Consolidate GES Data
-
Fields: Employment Status, Organisation Type_Recoded, Organisation Type_Others_Recoded, Company Name_Recoded, Gross Salary, Industry, Industry (Others), Occupation, Occupations (Others), Other Occupations (Description), Status of Higher Education, Higher Education Type, MBA (University), Master's by Coursework (University), Master's by Research (University), PhD (University), Higher Education Type (Others), Subject Area
-
data format: { student_id: { (various fields) } }
Build Position Details Component in Position Page
Build the Position Details Component in the positions page.
Put in the two charts (assume data is available).
Make sure it works when real data comes in.
Consolidate Module Enrolment Data
-
map the data from modules table to the students
-
calculate CAP based on modules taken
-
consolidate a JSON file of the format { student_id: { modules_taken: [module_code], CAP: cap } }
-
consolidate a dictionary of modules of the format: { module_code: { module_name: module_name, modular_credits: modular_credits , module_description: module_description, major: major} }
-
Rmk: the consolidated list of modules serves as the basis for mocking later
Mock data that is not in the data lake files
Data to be Mocked (may be adapted):
- Internship: company and positions
- RA: professor and project information
- TA module information
Build 'Explore by' Components in Internship Section
Build the "Explore by" component in the internship section for Industry and Major.
Implement the drop-down list. Note: the drop-down list should be a separate component, so need to create the drop-down list component first.
Create real charts with some data.
The same component should be reusable for major.
Build the 'Explore by' component for 'company'.
Implement the drop-down list, create real charts with some data.
Consolidate Student Program Enrolment
- Academic Group, Academic Plan & Attached to RI/Institute Code
- Output format: refer to the other issues
Clean data from data lake files
Acceptance Criteria (AC):
All data required in the issues should be generated.
All data should be uploaded onto Google Drive by the end of the first milestone.
Build the search bar component
Build the search bar under the section heading. (This will be the same for all three sections).
Currently, just build the shape, no need to implement the function of the search button.
- implement the auto-complete function based on data stored in a variable
- currently the data can just be any random data stored within the component
- reference: https://www.w3schools.com/howto/howto_js_autocomplete.asp
- the data should be stored as a list of dictionaries (e.g. [{ name: name, image_url: image_url }])
- a list of images should be displayed below when image_url is present
Search Page Components
- Slide 12:
One search bar, 2 filters, one component.
Each job posting is a component.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.