This project is a Club Notification System built using Vue.js for the frontend and Flask for the backend, integrated with Tailwind CSS and PostgreSQL. Follow this guide to set up and run both the frontend and backend.
- Real-time Notifications using WebSockets (Flask-SocketIO)
- Email Alerts via Brevo (Sendinblue API)
- Rate Limiting & Security with Flask-Limiter
- Database Connection Pooling with PostgreSQL
- Responsive UI using Tailwind CSS
- Role-based Authentication
- Logging & Monitoring
Ensure that the following software is installed on your machine:
To check installation:
node -v
npm -v- Python 3.8+
- PostgreSQL
- Redis (for background tasks & caching)
Check Python version:
python --versiongit clone https://github.com/Asmodeus14/Club-Notification-System
cd Club-Notification-Systemcd frontendnpm installvue add tailwindSelect "minimal" configuration when prompted.
Update src/assets/tailwind.css (create if missing):
@tailwind base;
@tailwind components;
@tailwind utilities;Update vue.config.js to process Tailwind CSS:
// vue.config.js
module.exports = {
css: {
loaderOptions: {
postcss: {
plugins: [require('tailwindcss'), require('autoprefixer')],
},
},
},
};npm run serveVisit http://localhost:8080 to access the UI.
cd backendpython -m venv venv
source venv/bin/activate # macOS/Linux
venv\Scripts\activate # Windows
pip install -r requirements.txtCreate a .env file:
DB_NAME=your_database
DB_USER=your_username
DB_PASSWORD=your_password
DB_HOST=localhost
DB_PORT=5432
BREVO_API_KEY=your_sendinblue_api_key
SECRET_KEY=your_flask_secret_key
REDIS_URL=redis://localhost:6379python App.pyflask runVisit http://127.0.0.1:5000 for the backend API.
Flask
Flask-Cors
psycopg2
psycopg2-binary
werkzeug
python-dotenv
marshmallow
flask-limiter
flask-socketio
redis
dramatiq
sib-api-v3-sdknpm run buildThis generates an optimized build in the dist/ folder.
gunicorn -w 4 -b 0.0.0.0:5000 App:app- Tailwind Not Working? Ensure
tailwind.cssis correctly imported. - Dependencies Not Installing? Try:
rm -rf node_modules package-lock.json npm install
- Database Connection Failing? Check
.envfor correct credentials. - Redis Not Running? Start Redis server:
redis-server
- Too Many Connections? Increase PostgreSQL max connections:
ALTER SYSTEM SET max_connections = 200;
This project is licensed under the MIT License.
Contributions are welcome! Feel free to fork the repo, create a feature branch, and submit a pull request. π
π Happy Coding!