Skip to content

Web application for a forum website with accessibility

Notifications You must be signed in to change notification settings

rmodi6/accessible-forums

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Accessible Forums

Website

This app has been deployed to Heroku and is available at: https://accessible-forums.herokuapp.com/.
For the best experience, do not use a mouse and use only the keyboard shortcuts along with a screen reader like NVDA or JAWS. If on a mobile device, use the appropriate accessibility tool based on your OS: Talkback on Android and VoiceOver on iOS.

Note: There is no elasticsearch server connected to the Heroku app because of which fuzzy and fast search is disabled.

The website is down now as Heroku no longer offers free Heroku Postgres server.

Development guide

Note: Run all the commands in the project root directory

  • Create a python 3 environment using your favorite environment manager. For example, conda users:
conda create -n accessible-forums python=3
  • Activate the environment
conda activate accessible-forums
  • Install all the dependencies using the requirements.txt file
pip install -r requirements.txt
  • Initialize the database (uses the flask-migrate dependency)
flask db upgrade
  • Before loading data into the database, copy the data files into the project root directory. The compressed data directory can be downloaded here.
cp -r /path/to/data/directory ./
  • After copying, the project root directory should look like this:
📦accessible-forums  
 ┣ 📂app  
 ┣ 📂data  
 ┃ ┣ 📜...csv files  
 ┃ ┗ 📂folder (optional)  
 ┃   ┗ 📜...csv files  
 ┣ 📂migrations  
 ┣ 📜.env  
 ┣ 📜.gitignore  
 ┣ 📜babel.cfg  
 ┣ 📜config.py  
 ┣ 📜main.py  
 ┗ 📜requirements.txt

Note: If you're going to use elasticsearch, now is a good time to start the elasticsearch server. This will index the data into elasticsearch as we load them into db. You can set the ip and port of the elasticsearch server in the .env file.

  • Use the following command to load the data into database:
flask db-load
  • Run the app using
flask run -h 0.0.0.0

By default, the app will be running on http://127.0.0.1:5000/. On a local network (WiFi), you can access the website through any device on the same network (WiFi) using the local ip address of the machine. E.g. If your machine has the local ip address 192.168.0.2, you can access the website using http://192.168.0.2:5000/. Use the ifconfig command on UNIX machines and ipconfig command on Windows machines to get the local ip address of the device.

Credits

This project is heavily adopted from the excellent Flask Mega-Tutorial by Miguel Grinberg.