Design and Development of a Web Application for Alumni Data Management.
This is a full-stack web application designed to manage alumni data efficiently. The system allows administrators to track alumni information, manage events, and maintain contact records.
Tech Stack:
- Backend: Django REST Framework with Python
- Frontend: Flutter Web Application
- Database: SQLite (Development) / PostgreSQL (Production)
- Authentication: JWT Token-based Authentication
Alumni Data Management App/
├── backend-django/ # Django REST API Backend
│ ├── alumni_app/ # Main Django application
│ │ ├── models.py # Database models
│ │ ├── views.py # API views and logic
│ │ ├── serializers.py # Data serialization
│ │ └── urls.py # API endpoints
│ ├── alumni_project/ # Django project settings
│ ├── requirements.txt # Python dependencies
│ ├── manage.py # Django management script
│ └── .gitignore # Backend-specific ignores
├── frontend-flutter/ # Flutter Web Frontend
│ ├── lib/ # Dart source code
│ │ ├── main.dart # App entry point
│ │ ├── models/ # Data models
│ │ ├── pages/ # UI screens
│ │ └── functions/ # Business logic
│ ├── web/ # Web-specific configuration
│ ├── pubspec.yaml # Flutter dependencies
│ └── test/ # Flutter tests
├── .gitignore # Project-wide ignores
└── README.md # This file
- ✅ Create, read, update, and delete alumni records
- ✅ Track contact information (name, email, phone, country)
- ✅ Record academic details (course, graduation year)
- ✅ Store professional information (company, area of expertise)
- ✅ Set availability and contact preferences
- ✅ Create and manage alumni events
- ✅ Track event attendance
- ✅ Alumni-event relationship management
- ✅ Record previous contacts with alumni
- ✅ Track contact methods and descriptions
- ✅ Associate contacts with specific users
- ✅ JWT-based authentication
- ✅ User registration and login
- ✅ Password reset functionality
- ✅ Secure API endpoints
- ✅ Alumni filtering and search capabilities
- ✅ Recommended alumni for events
- ✅ RESTful API with comprehensive endpoints
Make sure you have the following installed:
- Python 3.8+
- Flutter SDK 3.6.1+
- Git
- PostgreSQL (for production) or SQLite (for development)
-
Navigate to backend directory
cd backend-django -
Create and activate virtual environment
# Windows python -m venv .venv .venv\Scripts\activate # macOS/Linux python3 -m venv .venv source .venv/bin/activate
-
Install Python dependencies
pip install -r requirements.txt
-
Set up environment variables
# Create .env file with your configuration # Example: DEBUG=True SECRET_KEY=your-secret-key-here DATABASE_URL=sqlite:///db.sqlite3
-
Run database migrations
python manage.py makemigrations python manage.py migrate
-
Create a superuser (optional)
python manage.py createsuperuser
-
Start the Django development server
python manage.py runserver
The API will be available at
http://127.0.0.1:8000/
-
Navigate to frontend directory
cd frontend-flutter -
Install Flutter dependencies
flutter pub get
-
Run the Flutter web application
flutter run -d chrome
The web app will be available at
http://localhost:3000/(or the port shown in terminal)
POST /api/register/- User registrationPOST /api/login/- User loginPOST /api/logout/- User logoutPOST /api/forgot-password/- Password reset
GET /api/alumni/- List all alumni (with filtering)POST /api/alumni/- Create new alumniGET /api/alumni/{id}/- Get specific alumniPUT /api/alumni/{id}/- Update alumniDELETE /api/alumni/{id}/- Delete alumni
GET /api/events/- List all eventsPOST /api/events/- Create new eventGET /api/events/{id}/- Get specific eventPUT /api/events/{id}/- Update eventDELETE /api/events/{id}/- Delete event
GET /api/contacts/- List contact historyPOST /api/contacts/- Record new contactGET /api/contacts/?alumni={id}- Get contacts for specific alumni
- Personal Information: name, email, phone
- Academic: prior_course, year_of_graduation
- Professional: company, area_of_expertise
- Contact Preferences: availability, contact_times, country
- Basic Information: name, date, time, description
- Relationship between Alumni and Events
- Attendance tracking
- Contact history tracking
- Associated with User and Alumni
cd backend-django
python manage.py testcd frontend-flutter
flutter test- JWT token-based authentication
- Password hashing
- CORS protection
- Input validation and sanitization
- Protected API endpoints
- Responsive design for web and mobile
- Material Design UI components
- State management with Provider
- HTTP client for API communication
- Secure storage for authentication tokens
- Backend: Django Admin Panel at
/admin/ - API Documentation: Available at
/api/docs/(if configured) - Testing: Comprehensive test suites for both backend and frontend
- Linting: Code quality enforcement
- Django 5.1.7
- Django REST Framework
- django-filter
- django-cors-headers
- djangorestframework-simplejwt
- psycopg2 (PostgreSQL)
- http (API communication)
- provider (State management)
- flutter_secure_storage (Secure token storage)
- shared_preferences (Local storage)
- font_awesome_flutter (Icons)
- Set up PostgreSQL database
- Configure environment variables
- Run migrations:
python manage.py migrate - Collect static files:
python manage.py collectstatic - Deploy using your preferred platform (Heroku, AWS, etc.)
- Build for web:
flutter build web - Deploy the
build/webdirectory to your web server
- Fork the repository
- Create a feature branch:
git checkout -b feature-name - Make your changes and commit:
git commit -m 'Add feature' - Push to the branch:
git push origin feature-name - Submit a pull request
This project is developed for educational purposes as part of a university project.
Handhwarah Muhumuza
Year 3 Student - University of Portsmouth
GitHub: @HandharJunino
For support or questions about this project, please:
- Check the existing issues on GitHub
- Create a new issue if needed
- Contact the development team
Note: This is an academic project developed for my Final Year Project.