This is a Flask-based web application that provides tools for creating file alignments. The app supports pairwise alignments, maintains an alignment history, and allows users to manage their alignment results.
-
Clone the repository:
git clone https://github.com/ppaa23/filealigner.git cd filealigner -
Install dependencies:
pip install -r requirements.txt
-
Run the application:
flask run
or open the link below:
https://flask-project-ppaa23-production.up.railway.app/- Flask
- Flask-SQLAlchemy
- pytest
- requests
- flasgger
- Docker
- User Registration & Authentication: Users can register, log in, and log out.
- Pairwise File Alignment: Users can upload two Python files for comparison. Alignment is conducted using tokenization the given code and following application of Needleman-Wunsch algorithm (allowing to compare sequences with different coefficients for matches, mismatches and gaps). The result of the alignment is provided in the form of similarity (the part of matches), score (the maximum possible score for given coefficients) and normalized score (normalization for the maximum length of token sequence).
- Alignment History: Users can view past alignment results with timestamps.
/(GET) - Displays the landing page./register(GET, POST) - Handles user registration./login(GET, POST) - Handles user authentication./logout(GET) - Logs out the current user./home(GET) - Displays the home page for logged-in users./tools/pairwise(GET, POST) - Allows users to upload two Python files for alignment./results/p/<alignment_id>(GET) - Displays the results of a specific alignment./history(GET) - Displays the history of past alignments.
Development is managed through the master branch.
- Program successfully aligns given files, saves the result to history, and visualizes alignments.
- User authentication and session management work as expected.
Here is the video capture showing basic functionality and features of GoGiAlign: https://youtu.be/c2bIPEo1qEw