This is a Next.js project bootstrapped with create-next-app
.
First, run the development server:
npm run dev
# or
yarn dev
Open http://localhost:3000 with your browser to see the result.
You can start editing the page by modifying pages/index.js
. The page auto-updates as you edit the file.
To learn more about Next.js, take a look at the following resources:
- Next.js Documentation - learn about Next.js features and API.
- Learn Next.js - an interactive Next.js tutorial.
You can check out the Next.js GitHub repository - your feedback and contributions are welcome!
The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.
Check out our Next.js deployment documentation for more details.
The project aims to expand the current prototype of the Course Analyser with functionality aimed at students. First, we aim to implement the student management interface, allowing to enter new students and their current performance in the degree. Second, we aim to implement a Course Planner that allows students to generate project paths based on their current performance and personal preferences.
Responsabilities:
- Programmers - Back end / front end development
- Documentation - Maintain records / analysis / data entry
- Week 1-3: Learning and Analysis
- https://es6.io/ (MAYBE)
- https://reactforbeginners.com/ (MAYBE)
- https://flexbox.io/ (MAYBE)
- https://advancedreact.com/ (MUST)
- Week 4-6: Student Management: CRUD on student records and performance
- Week 7-9: Job / Specialisation visualisation
- Week 10-14/15: Course Planner
The system admin has to have the following capabilities:
-
List all students (name and ID)
-
Add a new student (by Name and ID)
-
View student details, which shows which blocks / units student has studied, or is surrently studying and what are the results. It also shows groups of student preferences out of which one is marked as active. The preference contains following fields:
- Interests (list of keywords, e.g. video games, netowrks)
- Desired Jobs
- Desired Specialisations
- Desired Units
- Desired Blocks
-
Register student results
-
Change stuent preferences
The system admin has to have the following capabilities:
- List all registered jobs and their current "Matching" with student profile. Matching is numerated as Percentage (e.g. 57% match)
- Mark which jobs will reach at least X (e.g. 90%) match by the end of the study
- Show job details, where a graphical coparison of currwnt student capabailities vs desired job capabilities is visualised
- Generate a new study plan to match with this job
- Enumerates saved user preferences and generates new study plans
Please answer following questions as best as you can and if possible try to ask your colleagues as well. If you can ask also diverse people who performed really good vs who performed ok. You can anonymise it, but please I need to know at least the performance (e.g. GPA)
- On scale 1 (lowest) to 5 (highest) how are you satified with the education process (not educators, the process -the support, the flexibility, the content) in your degree
- Which unit was the most enjoyable?
- What made it enjoyable?
- Which Unit was the least enjoyable?
- What made it not enjoyable?
- Have you considered the "Assumed Knowledge" when selecting unit?
- If so, was it clear what was required?
- How did you select your units? Random / Major ...
- Did you have a change of heart during your degree, changing your units?
- On scale 0 (does not apply), 1 (not flexible) to 5 (very flexible), how would you rate the flexibility of your degree, considering your changing preferences
IMPORTANT ONES
- Are there units that you would like to study but they did not fit into your study plan? Which ones?
- How would you feel about studying only portion of the unit that interests you or is recommended? What are the pros and what are the cons?
- Looking back at the order of units you studied, what would you change? If you would change something, can you please provide the original and changed order of units?
- Overall, can you tell us what you liked about your degree and what you disliked?
We will add a new call that return student info basedon his student id, stored in the JSON file in the "student" folder as {id}.json
. We will return raw JSON and do not care about actual shape of the data here.
-
We need to add the schema definition to
src/server/schema.ts
type Query { ... student(id: String!): JSON! }
-
We run
yarn generate
to generate the type safe resolver structure -
In
src/server/resolvers.ts
we implement the resolver under theQuery
export const resolvers: IResolvers = { Query: { // ... student(_, { id }) { return fs.readFileSync(path.resolve(`./src/data/students/${id}.json`), { encoding: 'utf-8' }); } } };
-
Profit. Do similar things with mutations.
- Write a graphql query in the .graphql file
- Run
yarn generate
, which will generate a type safe version of the query - Import the query in your component and use it as such
import { useTopicsQuery } from 'config/graphql';
// see an example in tag_editors.tsx
const { loading, error, data } = useTopicsQuery();
if (loading || error) {
return <ProgressView loading={loading} error={error} />;
}
// now work with data
console.log(data.useTopics);