Before installing the FUO Alumni System, ensure you have the following prerequisites installed on your system:
- Python 3.8 or higher
- MySQL (via XAMPP or standalone MySQL server)
- Git (optional, for cloning the repository)
If you don't have Python installed, download and install it from python.org.
Note: Make sure to check "Add Python to PATH" during installation.
Open a command prompt or terminal and run:
python --version
You should see the Python version number. If not, ensure Python is properly installed and added to your PATH.
You can install MySQL using one of the following methods:
- Download and install XAMPP from apachefriends.org
- Start the XAMPP Control Panel
- Start the Apache and MySQL services
- Access phpMyAdmin by clicking the "Admin" button next to MySQL or navigating to http://localhost/phpmyadmin
- Download and install MySQL from dev.mysql.com
- Follow the installation wizard instructions
- Remember the root password you set during installation
- Open phpMyAdmin at http://localhost/phpmyadmin
- Click on "New" in the left sidebar
- Enter "fuo_alumni" as the database name
- Select "utf8mb4_general_ci" as the collation
- Click "Create"
mysql -u root -p
CREATE DATABASE fuo_alumni CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
EXIT;
Download and extract the ZIP file of the project to your desired location.
Navigate to the project directory and create a virtual environment:
python -m venv venv
Activate the virtual environment:
On Windows:
venv\Scripts\activate
On macOS/Linux:
source venv/bin/activate
With your virtual environment activated, install the required dependencies:
pip install -r requirements.txt
Create a .env
file in the root directory of the project with the following content:
FLASK_APP=app.py
FLASK_ENV=development
SECRET_KEY=your_secret_key_here
DATABASE_URI=mysql://root:your_mysql_password@localhost/fuo_alumni
Note: Replace
your_mysql_password
with your actual MySQL password. If you're using XAMPP with default settings, the password might be empty. If no password, theDATABASE_URI
should look like:DATABASE_URI=mysql://root@localhost/fuo_alumni
- Open phpMyAdmin and select the "fuo_alumni" database
- Click on the "Import" tab
- Click "Choose File" and select the "seed_alumni_database.sql" file from the project root
- Click "Go" to import the database structure and seed data
mysql -u root -p fuo_alumni < seed_alumni_database.sql
With your virtual environment activated, run:
flask run
The application should now be running at http://127.0.0.1:5000
Open your web browser and navigate to http://127.0.0.1:5000
Field | Value |
---|---|
admin@alumni.com | |
Password | password123 |
Field | Value |
---|---|
john.doe@example.com | |
Password | password123 |
fuo-alumni-system/
├── app.py # Main application entry point
├── models.py # Database models
├── requirements.txt # Python dependencies
├── seed_alumni_database.sql # Database seed file
├── static/ # Static files (CSS, JS, images)
├── templates/ # HTML templates
├── blueprints/ # Flask blueprints for routes
│ ├── admin.py # Admin routes
│ ├── alumni.py # Alumni routes
│ ├── auth.py # Authentication routes
│ ├── contributions.py # Contributions routes
│ ├── events.py # Events routes
│ └── main.py # Main routes
├── forms/ # Form definitions
│ ├── admin.py # Admin forms
│ ├── alumni.py # Alumni forms
│ ├── auth.py # Authentication forms
│ ├── contributions.py # Contributions forms
│ └── events.py # Events forms
└── utils/ # Utility functions and helpers
└── decorators.py # Custom decorators
If you encounter database connection issues:
- Verify that MySQL is running
- Check that the database credentials in the .env file are correct
- Ensure the "fuo_alumni" database exists
- Try connecting to the database using a different client to verify credentials
If you encounter errors about missing modules:
pip install -r requirements.txt
Make sure your virtual environment is activated when installing dependencies and running the application.
If file uploads aren't working:
- Ensure the UPLOAD_FOLDER path exists and is writable
- Check that the folder permissions allow the web server to write to it
If port 5000 is already in use, you can specify a different port:
flask run --port=5001
To enable email notifications, add the following to your .env
file:
MAIL_SERVER=smtp.example.com
MAIL_PORT=587
MAIL_USE_TLS=True
MAIL_USERNAME=your_email@example.com
MAIL_PASSWORD=your_email_password
MAIL_DEFAULT_SENDER=your_email@example.com
FUO Alumni System Documentation - Created for educational purposes