Welcome to our coding challenge! A simple, modern blog application built with Django 5.0 and Bootstrap 5. This project includes user authentication, blog post creation/management, and a responsive design.
This challenge is intended to take under 4 hours. Use your best judgment and document any decisions and assumptions you make a long the way.
We will do a group review once complete.
- Python 3.10 or higher
- pip package manager
- Fork this repository
- Clone your forked repository
- Create and activate a virtual environment:
python -m venv envsource env/bin/activate # On Windows: .\env\Scripts\activate
- Configure environment variables:
- Create .env file in the project root
SECRET_KEY=your-secret-key DEBUG=True ALLOWED_HOSTS=localhost,127.0.0.1
For internal users, check our password manager for the Encrypto Key labeled "Encrypto for Shell/Citgo" to decrypt the
.env.cryptofile.`
-
Install dependencies:
pip install -r requirements.txt
-
Run migrations:
cd blog_projectpython manage.py makemigrationspython manage.py migrate
-
Create a superuser (this will be the user you use to access the admin and/or post blogs directly on the frontend):
python manage.py createsuperuser
-
Start the development server:
python manage.py runserver- The application will be available at http://127.0.0.1:8000
- Add Comment Functionality Under Blog Posts: Please use the current code base and add comment functionality to the blog entries. For bonus credit, make the comments reviewable on the django admin and allowed to be removed at any point.
- Code Documentation: Add detailed docstrings to all classes and functions explaining what they do and why they are needed.
- Write clean, maintainable code
- Follow SOLID principles where applicable
- Make meaningful git commits
- Add additional features that you think would be valuable
- Improve the UI/UX
- Add comprehensive test coverage
- Implement performance optimizations
- Add proper error handling
- Implement proper form validation
- Code quality and organization
- Problem-solving approach
- Git commit history
- Test coverage
- Documentation
- UI/UX quality
- Performance quality
- Push your changes to your forked repository
- Create a Pull Request to the original repository
- Include a description of your changes and any decisions you made