I created this while learning Django from this tutorial : SimpleIsBetterThanComplex
I was a total beginner in Django while developing this project, however I learnt a lot during the development. This sample application contains limited features and therefore can be updated to include new ones.
- Only admin users can create new Boards.
- Users can ask queries by starting topics under existing boards.
- Users can also post replies to existing topics.
(You can consider Python as a Board and all queries regarding Python can be asked by starting topics)
- User signup
- User login
- Password reset - in case user forgets password
- Change password
- Topic creation
- Posting replies to topic
- Markdown editor for post message
- Django - Python framework for web application
- HTML - for creating django webpage templates
- W3.CSS - CSS framework which is similar to Bootstrap
- markdown - Python library for markdown
- django-mdeditor - Python library for markdown editor
- python-decouple - Python library for separating secret setting parameters of project from source code
- dj_database_url - Python library to simplify database connection values
- sendgrid - Python library for free email service using Sendgrid API
- PythonAnywhere - for deployment of django application, serving static & media files
- Sublime Text Editor - for writing code
- Git - for version control
- Make sure you have Python 3, Git and virtualenv library installed
- Create a directory -
forum_folder - Inside
forum_folder, create virtual environment usingvirtualenv menv - Activate virtualenv by going in
menv>Scripts> runactivate.menvis now activated in shell or cmd prompt. - Inside
forum_folder, rungit clone https://github.com/mir1198yusuf/discussion_forum - Navigate to newly created folder
discussion_forum, runpip install -r requirements.txt - Generate Django secret key for project. Run
python generate_secret_key.pyand copy the output string - Paste it in
.envfile atYOUR_SECRET_KEY - Run
python manage.py migrateto apply database migrations. - Create a user
python manage.py createsuperuser - Finally start the project -
python manage.py runserver - Go to the link displayed in shell/cmd prompt to view site.
The project is live at site