uniquestudio / uniquerecruitmentsystem Goto Github PK
View Code? Open in Web Editor NEWA management system for recruitment of Unique Studio
Home Page: https://hr.hustunique.com
License: MIT License
A management system for recruitment of Unique Studio
Home Page: https://hr.hustunique.com
License: MIT License
Also, moving seems to be failed.
原因:
https://github.com/UniqueStudio/UniqueRecruitmentBackend/blob/eb47240814c9390bbf15817ade24fc281309f492/src/actions/candidate/getResume.ts#L6-L20
这段代码看起来没问题,实际上外面这层try-catch
没法catch到15行的error,因为express
的API设计一贯遵守回调为主的传统风格,res.download
的第三个参数正是onError
。
实际上这里省略了也没什么关系,因为我们还有全局的Error handler,只可惜这个handler没给响应设置状态码,因此下载一个不存在的文件时,前端拿到了200,认为报错的响应就是文件的内容,进而拿到了上图所示的resume.txt
。
https://github.com/UniqueStudio/UniqueRecruitmentBackend/blob/eb47240814c9390bbf15817ade24fc281309f492/src/middlewares/errorHandler.ts#L4-L9
但是第一个代码片段的第9行有判断!data || !data.resume
,如下代码保证了resume
字段一定指向简历文件,为什么还会出现文件不存在的情况呢?
https://github.com/UniqueStudio/UniqueRecruitmentBackend/blob/eb47240814c9390bbf15817ade24fc281309f492/src/actions/candidate/addCandidate.ts#L23-L43
(接下来是个人猜测)我们有个定时清理任务,这位同学很不幸地在整点提交简历,又很不幸地遇到了unlink
与copyFile
间的时间窗口,导致简历还没复制就被删掉了
https://github.com/UniqueStudio/UniqueRecruitmentBackend/blob/eb47240814c9390bbf15817ade24fc281309f492/src/task.ts#L11-L23
检讨:
The 0px bug on iOS seems to be appearing again.
Changing to 1px looks good to me.
this line not working
should use
return { ...action.payload };
出错位置的代码与焦点相关
猜测与 mui/material-ui#10341 是同一个问题,即
I got this error when using a Popover inside my Dialog with focus on an Input, i found this issue by google and solved it by adding disableEnforceFocus when the input was focused and the Popover is visible, I think this issue is enough 👍
如果猜想正确,在 https://github.com/UniqueStudio/UniqueRecruitmentDashboard/blob/cdda9ff924865375d1ca0dc185b81603d78ae748/src/views/Candidates.tsx#L73 加上 disableEnforceFocus
即可以解决
报名审核
与群面审核
部分如果您有建设性的建议、意见,欢迎回复。
目前的hr聊天室发送消息超过窗口长度之后不会自动滚动到最新消息
希望可以改一下
HR system requires scan QR code every time.
Maybe you could store credentials in Cookie avoiding frequent artificial login action.
2021.9才进行企业微信登录的同学无法查看招新信息,即使加入时间是2020年秋招。
很多选手需要修改面试时间,但是系统无法完成该操作,只能一个个私戳
目前的hr时间选择取决于组长
"请填写完整信息"
https://github.com/UniqueStudio/UniqueRecruitmentBackend/issues/21 中提到的问题可能是前端问题
另外,在iOS中也会有一点问题,文件会自动被加上后缀,来自: @MacsedProtoss
设备信息:iOS 14 Safari (然而我也是iOS 14 + Safari 却无法复现)
Press enter to login in the password input box
Improve data transfer. Pulling all data of one term from server may cause too many seconds waiting when the number of candidates is very high. Use cache and fetch data in the background or fetch less data from server per time.
export type Group = 'web' | 'lab' | 'ai' | 'game' | 'android' | 'ios' | 'design' | 'pm';
export interface Candidate {
name: string;
gender: 0 | 1 | 2; // TODO: 1: Male, 2: Female, 0: Other, sex -> gender
grade: 0 | 1 | 2 | 3 | 4 | 5 | 6; // TODO
institute: string;
major: string;
rank: 0 | 1 | 2 | 3 | 4; // TODO: 1: 10%, 2: 25%, 3: 50%, 4: 100%, 0: null, score -> rank
mail: string;
phone: string;
group: Group;
title: string; // e.g. 2018A || 2018S (A: AUTUMN, S: SPRING, C: CAMP)
intro: string;
isQuick: boolean;
referrer?: string; // TODO: new
resume?: string; // file path
abandon?: boolean;
rejected?: boolean;
time1?: object[]; // TODO: use better words to distinguish time and slot
slot1?: string[];
time2?: object[];
slot2?: string[];
step?: 0 | 1 | 2 | 3 | 4 | 5;
comments?: Comment[]; // TODO: object -> array
}
export interface Comment {
uid: string; // TODO: new
username: string; // TODO: new
content: string; // TODO: comment -> content
evaluation: 2 | 1 | 0; // TODO: 2: good, 1: so-so, 0: bad
}
export interface User {
weChatID: string;
username: string;
joinTime: string; // e.g. 2018A || 2018S (A: AUTUMN, S: SPRING, C: CAMP)
isCaptain: boolean;
isAdmin: boolean;
phone: string;
mail: string;
gender: 0 | 1 | 2; // TODO: 1: Male, 2: Female, 0: Other, sex -> gender
group: Group;
avatar?: string;
}
export interface Data {
group: Group;
total: number;
steps: number[];
}
export interface Time {
date: string;
morning: boolean;
afternoon: boolean;
evening: boolean;
}
export interface Recruitment {
title: string; // e.g. 2018A || 2018S (A: AUTUMN, S: SPRING, C: CAMP)
begin: string; // TODO: timestamp should be string
end: string; // TODO: timestamp should be string
total: number;
time1: {
[group in Group]: Time[];
};
time2: Time[];
slot1?: {
[group in Group]: number[]
};
slot2?: number[];
data: Data[];
}
export interface Message {
isSelf: boolean;
name: string;
time: string; // TODO: timestamp should be string
type: string;
avatar: string;
message: string;
}
集成邮件推送的功能到hr面板(OpenPlatformApi)
The Wechat login method is just ANNOYING. It's nice to have a username-password login method which can be simply recorded by browser.
现在已经写完了吗?如果没写完要不迁移API你们来做,我写下文档就行
还有就是,不是说这个让19级来写吗?
可以通过链接来分享一个候选人,其他人打开后直接打开该候选人的信息
I'm writing @uniqs/utils
package to manage all of ours utils. Then I found that the implementation of titleConverter
seems to have a bug.
We should have abbr[j]
here to get correct abbr:
-return title.slice(0, 4) + abbr[i];
+return title.slice(0, 4) + abbr[j];
seems that the titleConverter
at backend also has the same problem :)
candidate dashboard 选择时间的UI设计令人迷惑,不少选手都来问过这个应该怎么操作,希望能设计得更直观一点
We can have one url like this https://join.hustunique.com/web
, and the form will change the default selection value of Group
. (He can still change his target group in this page)
下面的代码保证了显示时人数总是大于等于0
https://github.com/UniqueStudio/UniqueRecruitmentDashboard/blob/1f18311072c87c3d9082fc92d9b088a4dba0a194/src/components/Allocation/index.tsx#L104-L113
这个时候向下调整3月19日上午的人数,界面上不会发生任何的变化
但是下面的函数仍然被调用,把3月19日上午的人数设置为了-1
https://github.com/UniqueStudio/UniqueRecruitmentDashboard/blob/1f18311072c87c3d9082fc92d9b088a4dba0a194/src/components/Allocation/index.tsx#L65-L75
而且目前的后端没有校验(正在写的是有的)
most of the styles are created by useStyles({ ... })
like:
and small fragments of components are wrapped with useMemo
like:
that's fine when fragments are so simple which will never change.
but now, the styles of these fragments will change when switching between light mode and dark mode,
which leads to missing styles.
will add class names to deps of useMemo
as a fix.
any problems related to styles can be list below, I will try to fix them someday.
comment的时候,如果我想要修改我的comment,在上面加新的评论,只能全部重新输入,而且不能复制粘贴我之前的评论,希望可以加一个user-select,我想复制我之前的评论,不想重新再打一遍
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.