A modern, feature-rich Django web application for creating and managing technical cheatsheets with an intuitive VS Code-inspired interface.
- Topic Management: Create and organize cheatsheets by topics
- Flashcard System: Each entry has a summary (front) and detailed content (back) with 3D flip animation
- Markdown Support: Write notes with full Markdown syntax including:
- Code syntax highlighting (via Highlight.js)
- Mathematical equations (via KaTeX)
- Diagrams (via Mermaid)
 
- User Authentication: Secure registration and login system
- Personal Workspace: Each user has their own private cheatsheets
- VS Code-Style Layout:
- Activity Bar (48px vertical icon bar)
- Collapsible Sidebar with topic navigation
- Main content area
 
- Dark/Light Mode: Theme toggle with localStorage persistence
- Responsive Design: Works seamlessly on desktop, tablet, and mobile
- Keyboard Shortcuts:
- Ctrl+B- Toggle sidebar
 
- Immersive CSS: Extensively commented styles for learning
- Clean, modular template architecture
- Context processors for global data
- CSS variables for theming
- Vanilla JavaScript (no heavy frameworks)
- Static file management
- SQLite database
- Python 3.8 or higher
- pip (Python package manager)
- Git
- 
Clone the repository git clone https://github.com/HamDQan1/cheatsheet_project.git cd cheatsheet_project
- 
Create a virtual environment python -m venv venv # On Windows venv\Scripts\activate # On macOS/Linux source venv/bin/activate 
- 
Install dependencies pip install -r requirements.txt 
- 
Run migrations python manage.py makemigrations python manage.py migrate 
- 
Create a superuser (optional) python manage.py createsuperuser 
- 
Run the development server python manage.py runserver 
- 
Open your browser Navigate to http://127.0.0.1:8000/
cheatsheet_project/
βββ config/                    # Project configuration
β   βββ settings.py           # Django settings
β   βββ urls.py               # URL configuration
β   βββ context_processors.py # Custom context processors
βββ sheets/                    # Main app
β   βββ models.py             # Topic and Entry models
β   βββ views.py              # View logic
β   βββ forms.py              # Entry and Topic forms
β   βββ urls.py               # App URLs
β   βββ static/
β   β   βββ sheets/
β   β       βββ styles.css    # Comprehensive stylesheet
β   βββ templates/
β   β   βββ sheets/
β   β       βββ base.html     # Base template
β   β       βββ sidebar.html  # Modular sidebar
β   β       βββ topic_list.html
β   β       βββ topic_detail.html
β   β       βββ ...           # Other templates
β   βββ templatetags/
β       βββ markdown_extras.py # Custom Markdown filter
βββ users/                     # Authentication app
β   βββ views.py
β   βββ urls.py
β   βββ templates/
β       βββ registration/
βββ manage.py
βββ requirements.txt
βββ README.md
- Click "New Topic" in the sidebar
- Enter a title for your topic
- Click "Add Topic"
- Navigate to a topic
- Click "Add New Entry"
- Fill in:
- Title: Entry name
- Summary: Quick notes (shown on front of card)
- Content: Detailed information (shown on back)
 
- Use Markdown for formatting
Code blocks: ```python def hello_world(): print("Hello, World!") ```
Math equations:
$E = mc^2$
$$\int_{0}^{\infty} e^{-x^2} dx = \frac{\sqrt{\pi}}{2}$$
Mermaid diagrams: ```mermaid graph TD; A-->B; A-->C; B-->D; ```
Edit CSS variables in sheets/static/sheets/styles.css:
:root {
    --primary: #4a9eff;
    --bg: #0b1220;
    /* ... more variables */
}Edit sheets/templates/sheets/base.html:
<button class="activity-bar-item" id="your-feature" aria-label="Feature">
    <span class="activity-icon">π</span>
</button>- Backend: Django 4.2.25
- Frontend: HTML5, CSS3, Vanilla JavaScript
- Database: SQLite (development)
- Markdown Processing: Python Markdown, Bleach
- Syntax Highlighting: Highlight.js
- Math Rendering: KaTeX
- Diagrams: Mermaid.js
This project is licensed under the MIT License - see the LICENSE file for details.
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the project
- Create your feature branch (git checkout -b feature/AmazingFeature)
- Commit your changes (git commit -m 'Add some AmazingFeature')
- Push to the branch (git push origin feature/AmazingFeature)
- Open a Pull Request
Huthayfa Abdulrauf Mohammad Derham
- GitHub: @HamDQan1
- Inspired by VS Code's interface design
- Built as a learning project for Django and modern web development
For questions or feedback, please open an issue on GitHub.
Happy Learning! π



