hyfer's Issues
subscribe with A function instead of value
this line is recieving a function not the Object that should recieves
hyfer/src/Pages/Timeline/TimeLine.js
Line 91 in a8e9b5f
Get uniform response while selecting timeline modules
The 5th click on modules in timeline will show "This module has no github repository" or sometimes the first clicks. Should be thoroughly studied.
More additional checkes for the token from the Both sides
If i have an unvalid token (student | teacher | guest) the page will have some broken parts like the profie photo.
Linter
Should we add Linter ?
a bug in the timeline button "go to today"
when you press on the button in the timeline the app will crash and you will receive this error:
TypeError: Cannot read property 'parentNode' of null
Timeline._this.handleClickTodayMarker
line: Timeline.js:85
Down below at front page
Should be changed: About hyfer Hyfer is a learning platform of Hack Your Future, a code school (foundation) teaching computer programming to refugees. The website was developed as a project in Hack Your Future curriculum. Developed by Hasan Shahoud, Jack Sacali and Malek Kanaan under supervision of HYF teachers Jim Cramer,Michael Trouw,Pablo Celentano and Unmesh Joshi. Enhanced by Alumnus of Class11 .
Add explicit Eslint config and stick with a single code formatting style
There is no .eslintrc
in the project and different files have different formatting which makes it difficult to read.
- Some files have both tabs and spaces in the same file: Attendance.js
- Sometimes closing
;
is used and sometimes not
Pick one style, configure it and stick with it.
Date Picker of 'Add a new module' is not working.
When you click to Add a new module button which is on the Timeline page, after you filled all information, you are not able to choose a valid date in the date picker. Date picker gets the 'min' and 'max' available time of the chosen modules but you still get error says 'Please provide a valid starting date for the module to be added'.
Hardcoded localhost in several place in the code base
We should have one place where we define (and can change) the base URL for app. At present it is difficult to host anywhere but localhost
.
i tried to handle it but its not work out and show me some err in terminal even when i was using the old database
×
_callee$
C:/Users/marjonbartelds/Desktop/project/hyfer/src/store/TimeLineStore.js:71
68 | ).catch(err => console.log(err));
69 |
70 | // set the state with the array of all current groups [maybe needed for sidecolumn group names]
> 71 | const groups = Object.keys(timelineItems);
72 | groups.sort((group1, group2) => {
73 | return +group1.split(" ")[1] > +group2.split(" ")[1];
74 | });
Remove trailing spaces
A lot of files have unnecessary trailing spaces. You can configure your IDE to remove them on save.
Example: Attendance.js
Missing links in homepage footer
No hrefs
added in Footer component for Home, Privacy Policy and Contact links
an issue in editing profile in the class selector
there is an issue in the profile components ... if you want to pick a class you only have a limited options from class 6 till class 15 ... while that should be based on the API to loop through the class's, and the way of adding a new class should be based on the timeline when a teacher add a new class then he can add students to that class
Separate devDependencies from dependencies
Right now everything is in dependencies even though a lot of them (e.g. eslint) are definitely not needed for the project to run.
Red highlighted current page not working
Red underlined highlighted page (Timeline, Module...) that shows the current page, doesn't get rendered by react but only if the page is manually refreshed!
As a user a want to see my profile
Currently when I click the avatar doesn't show the option of seeing my profile.
Changing/moving a running module causes the notes to be lost
# class activity(event)
“As a user, I want to be able to see my class activity such as Youtube so that I can see all my class activity in one place.”
Rate students homework
“As a teacher, I want to be able to rate my students homework , so that I can know the progress for each student.”
todayMarker is null -- React Issue
I tried to follow the code to know from where it will be null
and as i saw you are getting it from the state and the state is null, so in thiscase offcourse it will be, I couldn't figure it out because i don't know what it suppose to do.
But if there is something will have a null value in some point it should be better to have it with a conditional checking.
no one can delete a class from the app :D
we need to make a button that also can delete a class and in this case we need to know after deleting a class where the students will end up ... should they still can use the app or by deleting the app we should just close it so it will not show up in the timeline (in this case also we have to add in the class table status for example "open" or "closed"
Duplicated code
The Guest
, Students
and Teachers
components in the src/components/Users
folder are virtually identical. This should be replaced with a single component that receives a role
prop.
First time user registering via github.com
While new user registers, if Full-name field of his/her github is empty then the registration throws error!
# track assignments
As a teacher, I want to know who make his homework, So I can track assignments
Implement PropTypes
At present the Hyfer frontend does not use PropTypes for props validation. There is a risk that passing invalid props goes undetected.
It is proposed that PropTypes are implemented for each React component that needs to be touched for other work anyway.
Peer Review Feature
add functionality to:
-
notify teacher when student submits homework
-
allow teacher to assign each student a partner to provide feedback
-
notify assigned feedback partner when homework is ready for review
-
allow teacher to see and add to feedback provided by review partner
Add filter option when adding teachers to class
As our list of teachers quite large, it takes quite a bit of time to find the right teacher in the list. As the team has to add many teachers when updating the scedule, it would be very helpful to have a filter option here that makes selecting a teacher easy.
can't assign new teacher in the module
while trying to assign teacher in one of the modules, there is no way to write or select any teacher from the database, there only teacher(1/2) and nothing can be done.
GitHub Team Synchronization
Synchronization of users with GitHub
1. Administrative Principles
-
The GitHub Team information is to be considered the single source of truth for the Hyfer database. That is, HYF class membership should be actively managed through the GitHub page for the HackYourFuture organization. Hyfer itself will not provide any means for such management.
-
Class membership management includes the following activities:
- Creating new class teams.
- Adding (inviting) students.
- Moving students that switch classes.
- Removing dropped-out students.
-
A GitHub team that represents a HYF class should have a name that consists of the word
class
followed by a number, e.g.class13
. Team members of such a class are considered 'students' and will receive the Hyfer role ofstudent
. (Exception: members of theteachers
team, see below.) -
Teachers are defined as members of the GitHub
teachers
team and will receive the Hyfer role ofteacher
. -
A class team may include one or more teachers if needed for administrative purposes, however in Hyfer they will not be included as members/students of the class, i.e. they will be filtered out.
-
Any other teams in the HYF organization will be ignored by Hyfer.
2. Synchronization Principles
Synchronization can be completely handled by the backend. The frontend only needs to trigger the process by calling an API endpoint and be notified when the process has been completed.
-
The properties of interest for each member in a GitHub team are:
property description login
GitHub login name name
The user's full name (may not be present). email
The user's email address (may not be present). -
When comparing user data between the GitHub API response and the Hyfer database, the GitHub login name is used as the unique key to identify a user. In the GitHub API response this corresponds to the property
login
, and in theusers
table tousername
. -
We will never delete classes or users in the database. We can archive classes if necessary and can filter out users that are not a member of any (active) class if necessary in the UI.
2.1 GitHub teams that represent HYF classes
Note: these are GitHub teams that start with the word class
, followed by a number.
For each class team the following process will be followed:
-
If the class does not yet exist in the
groups
table we insert a new row with a defaultstarting_date
of 'next Sunday' and anarchived
value of zero. -
We will need to wipe out the class membership (if any) for the current class and rebuild it from scratch from the membership data obtained from GitHub. This is done by deleting all rows from the
groups_students
table that correspond to thegroup_id
of the class being processed. -
For each member of the GitHub class team (except if they are also member of the
teachers
team) either a row needs to be inserted into theusers
table if the user doesn't exist yet, or thename
andemail
fields for an existing user should be updated if that data is available from GitHub. Therole
must be set tostudent
. -
We need to add rows in the
groups_students
table, linking each team member to its class. This effectively (re)builds the class membership.
2.2 GitHub teachers
team
Note: This is the GitHub team with the name teachers
.
For each member of the GitHub teachers team we either need to insert a user into the users
table if the user doesn't exist yet, or overwrite the name
and email
fields for an existing user if that data is available from GitHub. The role
must be set to teacher
.
Train tickets Issue
for the user of this feature:
- the user should be able to send a link or links to single student or class(with the possibility to remove any student from the list if the student will not attend to the class)
- the ability for the user to see if the tickets have been used or not
- the user must also have the ability to remove or hide the ticket from the student if the student didn't use the ticket (or the user can also assign the ticket for the following week)
and this feature should give the student the ability to:
- receive the train ticket (the link) individually to make sure that no one can use his ticket
- write a comment or send a report that the student have an issue with the ticket (used before) or with the link
- receive the link also by Email which will give the student more access to his ticket in case that he wasn't able to reach the app
Changing roles error
As a teacher, I can't change the role of a user, to student or to teacher, or update anything on the form. I get error 401. Also default class5 should be changed!
Not able to add new class to the api even though all requirements are met, I think
hyfer/src/store/TimeLineStore.js
Line 85 in c4cd110
Hey guys I'm getting an an internal server error
response once this gets executed and I've compared it to what the current hyfer page does it's quiet the same. Could any of you take look and let me know what you think it is? Thanks
Removing the empty token fom the localStorage.
we don't need any conflictings Otherwise it will shows up:
UnauthorizedError: Format is Authorization: Bearer [token]
Line 24 in b06aeda
Use either yarn.lock or package-lock.json only
yarn.lock
and package-lock.json
serve the same purpose but are used but different tools. Having them both is redundant and defeats the purpose of a lock file since different people will have different dependency versions which might lead to inconsistent results.
Consider using yarn
instead of npm
and getting rid of package-lock.json
.
More about yarn.lock
.
Centralise application-wide constants.
At present there are several front-end files that directly define a constant for the base URL for the backend API (i.e. http://localhost:3005/...
). This makes it difficult and error-prone to change this base URL should that be necessary.
The proposed solution is to create a config.js
file that contains definitions of constants that are used application-wide in the frontend. We can then import the definitions where needed and replace equivalent locally defined constants as we come across them.
Timeline is not working with our without the existing database
i have tried to run the app today with the old database but still the timeline not working and i receive this error's from AddNewModuleModal._this.setInitialState
and the error's are :
-
- min.format is not a function
The above error occurred in the component:
in AddNewModuleModal (at AddDropdownList.js:54)
- min.format is not a function
-
- ./src/components/timelineComp/Timeline/Timeline.js
Line 8: 'loader' is defined but never used no-unused-vars
- ./src/components/timelineComp/Timeline/Timeline.js
-
- ./src/Pages/Users/Profile.js
Line 5: 'notify' is defined but never
- ./src/Pages/Users/Profile.js
To see my own class model not all classes
“As a user, I want to see my own class model, so that I can be focus on it .”
The input search doesn't work
The input search(lookup someone) doesn't work, and if I want to see the other users of this app or members of a class also I can't.
(Re)assign teacher is not functional
Timeline=>module dropdown menu=> (Re)assign teacher is not functional!
moving backend request to seperate file
hyfer/src/components/Attendance/Attendance.js
Line 158 in a8e9b5f
Move this function to seperate file.
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.