Web programming school project. Hackerfill is a platform that provides a collection of articles regarding cybersecurity. This project can be viewed at https://hackerfill.lukeaz.ml In case of abuse or malfunction contact me on the email indicated in the profile.
This project was developed for a school project at Eastern Piedmont University during the web programming course.
Project includes:
- Nodejs programming language
- Express framework for the web server
- JWT token for the authentication system
- Server side rendering using ejs
- Sqlite3 for database
- Markdown editor for creating articles, editing and displaying them
- Using DOMPurify to avoid xss when converting markdown to html
- Using char.js for leaderboard
- Using fontawesome for some icons
Certificates for authentication by JWT and for HTTPS are already in place.
- enter with the terminal in the /config folder
- have openssl installed and configured in the path
- generate certificates with
./generatejwtRS256Key.sh
by bash
- enter with the terminal in the /config folder
- have openssl installed and configured in the path
- generate certificates with
./generateMyCa.sh
by bash
- open the config.json file located in /config.
- change the PORT field to the desired port.
- if you use the docker the command to build the container must contain the correct port forwadding.
- open the config.json file located in /config.
- modify the argon parameters following the correct specifications indicated on the official site (in case of modification of these parameters it will no longer be possible to access users already registered because the hash of the password saved in the database will no longer be valid).
- If the database is deleted it will be automatically initialized and filled (attention: the folders of the articles and the associated materials will not be recreated, for the repopulation by default the articles folder should not be deleted).
- have nodejs installed
- open the terminal and move to the project folder.
- have gcc compiler installed and then install node-gyp with:
npm install -g node-gyp
. - install dependencies with
npm install
. - start the application with
npm start
.
- have docker installed.
- open terminal and move to the project folder.
- build the container image:
sudo docker build . -t luca/hackerfill
. - build the container (it will be started automatically):
sudo docker run -p 3000:3000 --name Hackerfill -d luca/hackerfill
. - see running containers:
sudo docker ps
. - start container:
docker start [container id]
. - shut down container:
docker stop [container id]
. - remove container:
docker rm [container id]
. - see the built images:
docker images -a
. - delete image:
docker rmi luca/hackerfill
.
Username | Password | Ruolo |
---|---|---|
lukeaz | Hackerfill_00 | advertiser |
radolfo | Hackerfill_00 | advertiser |
giova | Hackerfill_00 | advertiser |
granfranco | Hackerfill_00 | advertiser |
tommy | Hackerfill_00 | advertiser |
giuse | Hackerfill_00 | advertiser |
marcello | Hackerfill_00 | advertiser |
paolo | Hackerfill_00 | advertiser |
gianluca | Hackerfill_00 | advertiser |
virgilio | Hackerfill_00 | reader |
luigi | Hackerfill_00 | reader |