- Notifications
You must be signed in to change notification settings - Fork0
Flask-based web application following the MVC (Model-View-Controller) structure, with the added feature of integrating a Discord bot using Disnake. This setup allows you to build a web app while also having a Discord bot running in parallel, enabling additional functionality.
License
zaber-dev/MVC-Python
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Welcome to theFlask MVC Structure with Discord Integration! This project is primarily aFlask-based web application following the MVC (Model-View-Controller) structure, with the added feature of integrating aDiscord bot usingDisnake. This setup allows you to build a web app while also having a Discord bot running in parallel, enabling additional functionality. The structure is flexible, allowing you to expand it for more parallel tasks, or easily adjust it to run a single task as needed.
This project has been archived and is no longer maintained.It represents an older version of the application.
✅New Version Available
A new and improved version of this project is available here:👉Zeython
We recommend using the new version for the latest features, updates, and improvements.
.├── app│ ├── Actions# Utility functions (pagination, embeds, webhook handling, etc.)│ ├── Commands# Discord command handling│ │ ├── Context# Traditional Discord commands│ │ └── Slash# Slash commands for Discord│ ├── Controllers# Controller logic for Flask and Discord│ │ ├── Flask# Controllers specific to Flask web app│ │ └── Discord# Controllers for Discord bot│ ├── Models# Data models for the application│ └── Views# Dynamic Flask views/templates structures├── config│ └── boot.py# Main entry point to boot up the program (Flask + Discord)├── database│ └── db.py# Database interactions (abstraction layer)├── resources# Static and template files for Flask│ ├── css# CSS files│ ├── js# JavaScript files│ └── views# HTML templates├── routes│ ├── api.py# Routes for API endpoints│ └── web.py# Routes for web pages├── storage# User file storage (uploads, etc.)├── vendor# Placeholder for third-party integrations (collaborations welcome)├── requirements.txt# Python dependencies├── Dockerfile# Docker containerization file└── .env# Environment configuration variables
- MVC Structure: Organized codebase that follows the MVC pattern for better separation of concerns:
- Models handle data.
- Views are rendered by Flask, found in
resources/views. - Controllers handle business logic for web and API routes.
- Routing:
- API routes are defined in
routes/api.py. - Web routes are in
routes/web.py.
- API routes are defined in
- Database Abstraction: Easy-to-extend database layer (
database/db.py) for managing models. - Templates & Static Files: Resources such as HTML, CSS, and JavaScript are stored in
resources/.
- Commands:
- Traditional text-based Discord commands in
app/Commands/Context. - Slash commands in
app/Commands/Slash.
- Traditional text-based Discord commands in
- Parallel Execution: The Discord bot runs alongside the Flask application for seamless interaction between web and Discord functionalities.
- Utility Actions: Functions like pagination, embeds, and webhook handling in
app/Actions.
- Containerization: Provided
Dockerfileallows you to run the entire application in a Docker container, simplifying the setup process.
- Vendor Integrations: Open for contributions to implement third-party integrations or plugins within the
vendor/directory. - Authentication: Integrate authentication (OAuth or token-based) for the web app and APIs.
- File Management: Add advanced handling for user uploads within the
storage/folder. - Error Handling & Logging: Enhance error handling across both Flask and Discord components, with proper logging.
Contributions are welcome! If you'd like to collaborate, feel free to fork this repository and submit a pull request. Potential areas of contribution include:
- Implementing additional Flask features.
- Expanding Discord bot functionalities (commands, event listeners, etc.).
- Integrating new third-party APIs or services.
- Improving the MVC structures
Check out theissues section for current needs, or suggest your own enhancements!
Clone the Repository:
git clone https://github.com/MahediZaber51/MVC-Python.gitcd MVC-PythonInstall Dependencies:
pip install -r requirements.txt
Set up Environment Variables:Create a
.envfile in the root directory with the required environment variables for Flask and Discord (check the.env-examplefile).Run the Application:
python config/boot.py
Run in Docker:
docker build -t flask-discord-app.docker run -d -p 5000:5000 flask-discord-app
This project is licensed under the GNU General Public License v3.0.
About
Flask-based web application following the MVC (Model-View-Controller) structure, with the added feature of integrating a Discord bot using Disnake. This setup allows you to build a web app while also having a Discord bot running in parallel, enabling additional functionality.
Topics
Resources
License
Code of conduct
Contributing
Uh oh!
There was an error while loading.Please reload this page.