Skip to content

Eswaramuthu/Achievement-Management-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

158 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Here's the updated README:


πŸ† Achievement Management System

A centralized platform for tracking and showcasing academic achievements. Students access their accomplishments instantly. Teachers record them effortlessly. Everyone gets clarity.

GitHub Python Flask License


🎯 The Problem

Academic achievements are scattered chaos:

  • πŸ“§ Certificates buried in email threads
  • πŸ“ Paper documents lost in folders
  • πŸ“Š Teachers drowning in spreadsheets
  • πŸŽ“ Students can't showcase accomplishments during placements

Result: Wasted time, missed opportunities, zero visibility into actual progress.


✨ The Solution

Achievement Management System brings everything into one organized dashboard:

  • πŸ“ Centralized tracking β€” All achievements in one place
  • πŸ“ˆ Visual analytics β€” Progress trends and insights at a glance
  • ⚑ Fast entry β€” Teachers add records in seconds with auto-complete
  • πŸ” Smart filtering β€” Find exactly what you need instantly
  • πŸ“„ Certificate storage β€” Digital proofs accessible anytime

πŸš€ Quick Start

Windows (PowerShell)

# Clone and navigate
git clone https://github.com/Eswaramuthu/Achievement-Management-System.git
cd Achievement-Management-System

# Set up environment
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt

# Configure environment variables
copy .env.example .env
# Open .env and set your SECRET_KEY and FLASK_ENV

# Initialize and run
python init_db.py
python app.py

macOS / Linux

# Clone and navigate
git clone https://github.com/Eswaramuthu/Achievement-Management-System.git
cd Achievement-Management-System

# Set up environment
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

# Configure environment variables
cp .env.example .env
# Open .env and set your SECRET_KEY and FLASK_ENV

# Initialize and run
python init_db.py
python app.py

Environment Variables

Create a .env file in the project root (use .env.example as a template) and set the following:

FLASK_ENV=development
SECRET_KEY=your-strong-secret-key-here

🌐 Open your browser β†’ http://localhost:5000


πŸ› οΈ Tech Stack

Technology Purpose
Flask Lightweight Python web framework
Flask Sessions Secure, server-side session management and authentication
Werkzeug Password hashing via generate_password_hash and check_password_hash
SQLite Embedded database for local storage
JavaScript Dynamic interactivity (vanilla JS)
HTML/CSS Responsive UI with theme support
Jinja2 Server-side templating

πŸ’‘ Core Features

πŸ‘¨β€πŸŽ“ For Students

Feature Description
Dashboard View all achievements with stats at a glance
Analytics Track your progress over time with visual charts
Filters Search by type, year, position, or keyword
Certificates Download proof of achievements instantly
πŸ“€ Export Cards Generate professional PNG/PDF cards with QR codes for LinkedIn
πŸ”— Share & Verify Share achievements with QR code verification links
Profile Manage personal details and preferences

πŸ‘¨β€πŸ« For Teachers

Feature Description
Quick Entry Add achievements with intuitive forms
Auto-Complete Find students instantly as you type
Upload Attach certificates (PDF, JPG, PNG up to 5MB)
Batch Mode Manage multiple entries efficiently
Dashboard View submission statistics and trends

πŸ” Security & Access Control

Feature Description
Flask Sessions All authentication is handled server-side using secure Flask sessions β€” no third-party auth providers required
Password Hashing User passwords are securely hashed in the local database using Werkzeug

πŸŽͺ Achievement Types

The system supports comprehensive tracking for:

  • πŸ’» Hackathons β€” Team projects, difficulty levels, project titles
  • πŸ… Coding Competitions β€” Platforms, languages, problem difficulty
  • πŸ“ Paper Presentations β€” Journal names, conference levels, paper titles
  • 🎀 Conferences β€” Roles, presentation types, conference tiers
  • 🎭 Symposiums β€” Themes, event scope, participation types
  • ✨ Custom Events β€” Flexible fields for unique achievements

πŸ“‚ Project Structure

achievement-management-system/
β”‚
β”œβ”€β”€ app.py                    # Flask application + routing logic
β”œβ”€β”€ init_db.py                # Database schema initialization
β”œβ”€β”€ requirements.txt          # Python dependencies
β”œβ”€β”€ .env.example              # Environment variable template
β”‚
β”œβ”€β”€ static/
β”‚   β”œβ”€β”€ css/                  # Stylesheets + dark/light themes
β”‚   β”œβ”€β”€ js/                   # Client-side JavaScript
β”‚   └── certificates/         # Uploaded certificate files
β”‚
β”œβ”€β”€ templates/                # Jinja2 HTML templates
β”œβ”€β”€ ams.db                    # SQLite database
β”œβ”€β”€ instance/                 # Instance-specific files
β”‚
β”œβ”€β”€ README.md                 # This file
└── Contributing.md           # Contribution guidelines

πŸ—„οΈ Database Schema

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”            β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”            β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Student   β”‚            β”‚ Achievement β”‚            β”‚   Teacher   β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€            β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€            β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ student_id  β”‚ PK         β”‚ id          β”‚ PK         β”‚ teacher_id  β”‚ PK
β”‚ name        β”‚            β”‚ student_id  β”‚ FK         β”‚ name        β”‚
β”‚ email       β”‚    1:N     β”‚ teacher_id  β”‚ FK   N:1   β”‚ email       β”‚
β”‚ password    β”‚ ─────────> β”‚ type        β”‚ <───────── β”‚ password    β”‚
β”‚ department  β”‚            β”‚ event_name  β”‚            β”‚ department  β”‚
β”‚ is_approved β”‚            β”‚ date        β”‚            β”‚ is_approved β”‚
β”‚ ...         β”‚            β”‚ position    β”‚            β”‚ ...         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜            β”‚ certificate β”‚            β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                           β”‚ ...         β”‚
                           β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

🎨 Key Features Explained

πŸŒ“ Dark/Light Mode

Toggle between themes with one click. Preferences persist across sessions. Smooth transitions and eye-friendly color schemes.

πŸ”Ž Smart Student Search

Type student ID or name β€” results appear instantly. No more scrolling through endless lists. Auto-complete makes teacher workflows lightning-fast.

πŸ“Š Achievement Analytics

Visual dashboards show:

  • Achievements by type (pie charts)
  • Progress over time (line graphs)
  • Position distribution (bar charts)
  • Year-wise breakdown

πŸ“ Certificate Management

  • Upload formats: PDF, JPG, PNG
  • Max file size: 5MB
  • Secure storage with unique filenames
  • One-click download access

πŸ›‘οΈ Role-Based Access Control

Routes are protected using custom Python decorators:

  • @student_required β€” restricts access to authenticated students only
  • @teacher_required β€” restricts access to authenticated teachers only
  • @admin_required β€” restricts access to administrators only

Attempting to access a restricted route without the correct role redirects the user immediately, ensuring strict privilege separation across the application.

πŸ”§ Custom Fields by Type

Each achievement category has specialized fields:

Hackathons: Team size, project title, tech stack, difficulty
Competitions: Platform, language, problem set, ranking
Papers: Journal, conference tier, impact factor, citations
Conferences: Role, presentation format, audience size
Symposiums: Theme, scope, participation mode

πŸ“€ Achievement Card Export & Sharing

Students can now generate professional achievement cards with QR codes:

  • PNG Export: High-quality 300 DPI PNG images perfect for social media
  • PDF Export: Printable PDF certificates ready for portfolios
  • QR Codes: Scannable verification codes linking to public achievement pages
  • Social Sharing: One-click sharing to LinkedIn, Twitter, and other platforms
  • Public Verification: Shareable links allow anyone to verify achievements
  • Dark/Light Support: Exported cards respect user's theme preference

How to Use:

  1. Go to "My Achievements"
  2. Click "Share Achievement" on any achievement card
  3. Select "Export Card" to generate PNG/PDF
  4. Download and share on LinkedIn or social media
  5. Others can scan QR code to verify achievement

For detailed documentation, see ACHIEVEMENT_EXPORT_GUIDE.md.


🌐 Navigation Map

Page Route Access
Home / Public
Student Login /student-login Public
Teacher Login /teacher-login Public
Student Dashboard /student-dashboard Students only
Teacher Dashboard /teacher-dashboard Teachers only
View Achievements /view-achievements Students only
Add Achievement /add-achievement Teachers only
Admin Panel /admin Admins only

🀝 Contributing

We welcome contributions! Here's how to get started:

  1. Fork the repository
  2. Clone your fork locally
  3. Create a feature branch (git checkout -b feature/amazing-feature)
  4. Commit your changes (git commit -m 'Add amazing feature')
  5. Push to your branch (git push origin feature/amazing-feature)
  6. Open a Pull Request

πŸ“– Read Contributing.md for detailed guidelines.


πŸ—ΊοΈ Roadmap

Phase 1 (Current)

  • Core achievement tracking
  • Student & teacher dashboards
  • Certificate upload/download
  • Dark mode support
  • Flask Sessions authentication
  • Role-based access control (RBAC)
  • Admin approval workflow

Phase 2 (In Progress)

  • πŸ”— LinkedIn integration & social sharing
  • πŸ“€ Achievement card export (PNG/PDF)
  • QR code verification system
  • πŸ“± Mobile app (iOS + Android)
  • πŸ€– AI-powered certificate validation
  • πŸ“§ Email notifications for new achievements
  • 🌍 Multi-language support

Phase 3 (Future)

  • πŸ“Š Advanced predictive analytics
  • πŸ“„ Export as PDF portfolio
  • ☁️ Cloud deployment options

πŸ“œ License

Academic project developed at SRM Institute of Science and Technology.
For educational and institutional use.


πŸ“¬ Contact & Support

Found a bug? Have an idea? Need help?


⭐ Star this repo if you find it helpful!

Made with ❀️ at SRM Institute of Science and Technology

About

Resources

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages