Skip to content

The Archaeology Dataset Management System is a web based application built using Python Flask and SQLAlchemy. This project is aims to provide Continuous Integration and Continuous Deployment of large Archaeological Datasets from Center for Comparative Archaeology at the University of Pittsburgh.

Notifications You must be signed in to change notification settings

shusritavenugopal/Archaeology-Dataset-Management-System

Repository files navigation

##Center for Comparative Archaeology - Database Management System
In the realm of archaeological research and resource management, the "Center for Comparative Archaeology" website stands as a pivotal platform designed to facilitate seamless access, contribution, and administration of databases pertinent to the archaeological domain. This user-friendly website offers a simple yet effective way for users to download existing databases and actively contribute to their growth.
This project is aimed at creating an accessible and user-friendly hub for managing, contributing to, and disseminating archaeological databases. Built using Python Flask, MySQL, SQLAlchemy, HTML, and CSS, this system enables users to view, download, contribute to existing datasets, and request new project creation after registering and logging in.

Features
Guest Access: View and download existing archaeological datasets in Excel and CSV formats.

Registered User Access: Submit requests to create new projects.
Contribute to existing projects by uploading Excel sheets with the same columns as the existing dataset.
Profile page to showcase previous projects and research interests.

Moderator Dashboard: Review and approve requests submitted by registered users (create new projects, contribute to existing ones).

Dependencies:
Ensure the following dependencies are installed in a virtual environment:
Flask
Flask-WTF
Flask-SQLAlchemy
Pandas
MySQL Connector for Python
Phonenumbers
Flask-Login
WTForms-Alchemy

Installation Steps:
Clone the repository: git clone https://github.com/yourusername/your-repo.git
Navigate to the project directory: cd your-repo
Create a virtual environment: python3 -m venv dbenv
Activate the virtual environment:
On macOS/Linux: source dbenv/bin/activate
On Windows: dbenv\Scripts\activate
Install dependencies:
Copy code
pip install Flask Flask-WTF Flask-SQLAlchemy pandas mysql-connector-python phonenumbers Flask-Login wtforms-alchemy
Set Flask environment variables:
arduino
Copy code
export FLASK_ENV=development
export FLASK_APP=script.py
Usage
Run the application: flask run
Access the application in your browser: http://127.0.0.1:5000

SYSTEM REQUIREMENTS
1. Web Server:
a. Flask web framework for Python, utilizing Werkzeug as the WSGI server.
b. Deployment on a web server capable of handling Flask applications (e.g., Gunicorn,
uWSGI).
c. Consideration for reverse proxy setup (e.g., Nginx, Apache) to enhance security and
performance.

2. Database Management System:
a. MySQL 8.0 for efficient data storage and retrieval.
b. Flask-SQLAlchemy for simplified database interactions within the Flask application.
c. Proper database schema design to accommodate user profiles, notifications,
contributions, and moderation logs.

3. Programming Languages:
a. Python 3.7 or later for server-side scripting using Flask.
b. HTML5, CSS3, and JavaScript for the front-end user interface.
c. Jinja2 templating engine for seamless integration of Python with HTML templates.

4. User Authentication and Security:
a. Flask-Security for user authentication and authorization.
b. Implementation of secure password hashing using libraries like Werkzeug.
c. Protection against common web vulnerabilities using Flask extensions and proper
input validation.

5. User Interface Compatibility:
a. Responsive design using HTML5 and CSS3 for optimal user experience across
devices.
b. JavaScript for client-side interactivity and dynamic content.

6. Notification System:
a. Implementation of real-time updates using Flask-SocketIO for WebSocket
functionality.
b. Integration with Flask-Mail or similar extensions for email notifications.

7. User Management:
a. Flask-Login for user session management.
b. User registration and profile management using Flask forms.
c. Account deletion functionality with appropriate data retention policies.

8. Moderation Tools:
a. Flask admin panel or custom moderation interfaces for reviewing and processing user
submissions.
b. Logging of moderator activities within the Flask application.

9. File Management:
a. Flask-Uploads or similar extensions for secure file upload and management.
b. File type verification to ensure the integrity of contributed content.

10. Compatibility Testing:
a. Cross-browser compatibility testing for major browsers (Chrome, Firefox, Safari).
b. Responsive design testing on various devices and screen resolutions.

11. Documentation and Help System:
a. Comprehensive documentation for developers on setting up, configuring, and
maintaining the Flask application.
b. Implementation of a help system within the web interface or a separate knowledge
base.

12. Backup and Recovery:
a. Regular automated backups of the MySQL database using tools like mysqldump.
b. A well-defined disaster recovery plan for minimal data loss and downtime.

About

The Archaeology Dataset Management System is a web based application built using Python Flask and SQLAlchemy. This project is aims to provide Continuous Integration and Continuous Deployment of large Archaeological Datasets from Center for Comparative Archaeology at the University of Pittsburgh.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published