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 --version
git clone https://github.com/Asmodeus14/Club-Notification-System
cd Club-Notification-System
cd frontend
npm install
vue add tailwind
Select "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 serve
Visit http://localhost:8080 to access the UI.
cd backend
python -m venv venv
source venv/bin/activate # macOS/Linux
venv\Scripts\activate # Windows
pip install -r requirements.txt
Create 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:6379
python App.py
flask run
Visit 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-sdk
npm run build
This generates an optimized build in the dist/
folder.
gunicorn -w 4 -b 0.0.0.0:5000 App:app
- Tailwind Not Working? Ensure
tailwind.css
is correctly imported. - Dependencies Not Installing? Try:
rm -rf node_modules package-lock.json npm install
- Database Connection Failing? Check
.env
for 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!