Skip to content
Parody of the famous french homework online system Pronote, used to share it instead of receiving it
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


This project is a parody of the famous french homework online system Pronote. Pornote enables you to share your homework instead of receiving it, and rewards you with other homework from people of your own class !

Pornote was an original idea of Gnomino, that I found funny and wanted to actually make so I could in the meantime progress in Python, a new language I just started to learn about.

How does it work ?

Each person of a class creates an account, and everyone can upload homework to the server (but not everyone can access your homework, only those who worked for !). When you upload it, you gain a point, but you can also decide to upload it publicly so that it's free for everyone, and for three homework published publicly, you gain an extra point for generosity. These points are needed to access other people's homework, so that everyone has to work a bit to get rewarded.

What does it look like ?


What is pornote using ?

Pornote is using Flask, a microframework for Python, and some other libraries like flask-sqlalchemy (for the database), and werkzeug (to handle password storage).

Run pornote on your server

Don't forget that I created this especially for my school/class, so it may not be fully compatible with your system (if you want to use it also).

First, you must create the database :

$ python db init
$ python db migrate
$ python db upgrade

Then, you need to create a file, there is a template called in the pornote directory that you can copy. Don't forget to change the secret key in the configuation file before using it ! Also, you should set the location of your upload folder, by changing the UPLOAD_FOLDER value in the config file. And finally, you might consider changing the UNALLOWED_EXTENSIONS value to prevent from XSS problems on your server.

I personnaly use nginx on my Raspberry Pi to run the server, and I have CloudFlare handling DNS for me. I chose gunicorn to deploy pornote, and I have supervisor installed to easily manipulate the server. You can find the nginx config in the pornote.conf file and the supervisor config in pornote_supervisor.conf.

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.