Author: Marc-Antoine Augé
A2P is a a complete online solution to automate the administration of the Application Process of Social Hackers Academy (see), based on the technologies teached in the Coding School.
The project is splitted into three parts:
applicant-frontend
: a website in React which provides to the applicants a mobile-first website where it's easy to apply and check their progression ;superviser-frontend
: a website in VueJS which provides to the supervisors an easy way to validate the different steps, start new cohorts... ;backend
: a complete API in NodeJS and Express in order to link together the [MongoDB][mongodb] database and the frontends ;
- Adding words counter (on all long text questions) (resolves #24);
- Updating all static texts + email templates according to the current need ;
- Adding label, deadline and location edition on open processes (resolves #34) ;
- Feedback on acceptation and rejection : it's possible to edit the email template directly for each applicant (resolves #35).
The templates are written in
html
and useMustache
as template engine.
- Add applicant filters by 'accepted', 'rejected', and 'pending task' (resolves #36)
- Export of applicants data in an excel file (resolves #28)
- Email supports (templates could be found in
backend/emails/
). It uses email-templates and pugjs as the template engine. pughtml.com can be used to test the template engine. An email is sent after each step
Deprecated in v1.0.0. All the templates are written in
html
- Static updates on the applicant frontend: texts are more explicit and can be edited through the file
applicant-frontend/src/static.json
. - HTML support on page's caption
- Reset passwort feature (very basic, a new password is generated by the backend and sent to the user)
- Bugs fixing on the applicant frontend: when you pressed on an 'arrow' in a text field, the page changed
- An applicant is automatically logged in after his application
- Delete Applicant feature (accessible through the applicant panel in the superviser website)
- Allow an applicant to apply and to an opened process
- Allow an applicant to start completing a step and save it before submit it
- Allow an applicant to see the status of each of his step: -- todo if not submitted, -- pending if submitted and waiting a validation by a superviser, -- validated if validated by a superviser, -- rejected if the answer should be edited and submitted again. Only steps in status todo and rejected can be edited.
- Process deadline displayed
- Checking the required answers before going next page
- Allow swiping on mobile to change the current page
- Allow fully customization of processes with an easy-to-use draft form (a form cannot be edited once it's opened)
- Allow to see the progress of every applicant and validate & note every step if needed
- Allow to start a new process from an existing one
git clone https://github.com/Marc-AntoineA/A2P.git
Prerequisites
- Create a MongoDB database and an user (see Atlas)
- Create a OAuth2 token to the GMail address used (see How to get a gmail token) (not useful now)
- Edit the
settings.json
file of backend properly.
On your computer, to build the code and upload everything on your hosting via ftp
./deploy.sh -ftp ftpPath -u ftpUser
A2P requires Node.js, React and VueJS
git clone https://github.com/Marc-AntoineA/A2P.git
- Create a MongoDB database and an user (see Atlas)
- Create a OAuth2 token to the GMail address used (see How to get a gmail token)
- Edit the
settings.json
files properly.
Install the dependencies and and start the server.
$ cd backend
$ npm install
$ npm start
The website will be accessible in localhost:3000
.
Install the dependencies and start the server
$ cd superviser-frontend
$ npm install
$ npm start
The server is started on port 8080
In production:
$ npm run build
build the complete application in a /dist
folder, automatically served by the backend in the relative path: /administration
(static files in path /administration/static-superviser
).
Install the dependencies and start the server
$ cd applicant-frontend
$ npm install
$ npm start
The server is started on port 3300
.
In production:
$ npm run build
build the complete application in a /build
folder, automatically served by the backend in the relative path: /
(static-files in path /static-applicant
).
MIT