A Flask-based requirements management system with Gherkin syntax support, version control, and activity logging.
Main dashboard showing project overview and recent activities
Project listing and management interface
Interface for creating new requirements with Gherkin syntax support
Analytics dashboard with requirement statistics and trends
Administrative interface for user and system management
- Gherkin Requirements: Write requirements in standard Gherkin syntax
- Version Control: Track changes to requirements with full history
- Project Management: Organize requirements by projects
- Activity Logging: Track all user actions and changes
- Search Functionality: Full-text search using Whoosh
- User Management: Role-based access control
- Traceability: Link requirements to each other
- Modern UI: Bootstrap-based interface matching TimeTracker
- Analytics: Comprehensive reporting and statistics
-
Clone the repository:
git clone https://github.com/DRYTRIX/RequirementsTracker.git cd RequirementsTracker -
Install dependencies:
pip install -r requirements-minimal.txt
-
Initialize the database:
flask init-db
-
Create an admin user:
flask create-admin
-
Start the development server:
python run.py
-
Access the application at
http://localhost:5000
docker-compose up --builddocker build -t requirementstracker .
docker run -p 8080:8080 -v $(pwd)/data:/data requirementstrackerdeploy.batflask init-db- Initialize the databaseflask create-admin- Create an admin userflask create-user- Create a new userflask create-project- Create a new projectflask list-users- List all usersflask list-projects- List all projectsflask stats- Show application statistics
The application uses environment variables for configuration:
SECRET_KEY- Flask secret key (default: auto-generated)DATABASE_URL- Database connection string (default: SQLite)ALLOW_SELF_REGISTER- Allow automatic user creation (default: true)ADMIN_USERNAMES- Comma-separated list of admin usernames
The application supports both SQLite (default) and PostgreSQL:
- SQLite: Perfect for development and small deployments
- PostgreSQL: Recommended for production with multiple users
RequirementsTracker/
βββ app/
β βββ models/ # Database models
β βββ routes/ # Flask routes
β βββ templates/ # Jinja2 templates
β βββ static/ # Static files (CSS, JS, images)
β βββ utils/ # Utility functions
βββ assets/
β βββ screenshots/ # Application screenshots
βββ data/ # Application data (uploads, search index)
βββ logs/ # Application logs
βββ tests/ # Test files
βββ app.py # Main application entry point
βββ run.py # Development server runner
βββ requirements.txt # Full dependencies
βββ requirements-minimal.txt # Minimal dependencies
βββ docker-compose.yml # Docker Compose configuration
βββ Dockerfile # Docker configuration
βββ deploy.bat # Windows deployment script
GET /- DashboardGET /health- Health checkGET /projects- List projectsGET /projects/<id>- View projectGET /requirements- List requirementsGET /requirements/<id>- View requirementGET /search- Search requirementsGET /profile- User profileGET /about- About pageGET /help- Help documentation
python -m pytest tests/black app/ tests/flake8 app/ tests/-
"Failed to find attribute 'app' in 'app'"
- This is fixed in the current version. The Dockerfile now uses
app:create_app()
- This is fixed in the current version. The Dockerfile now uses
-
Database connection errors
- For SQLite: Ensure the
data/directory exists and is writable - For PostgreSQL: Check connection string and database availability
- For SQLite: Ensure the
-
Import errors
- Install dependencies:
pip install -r requirements-minimal.txt - For full features:
pip install -r requirements.txt
- Install dependencies:
-
Permission errors (Docker)
- The Docker container runs as non-root user (appuser)
- Ensure data directories have correct permissions
- Local development: Check console output
- Docker:
docker-compose logs -f - Application logs: Check
logs/directory
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
For issues and questions, please contact the development team or open an issue on GitHub.
- Repository: https://github.com/DRYTRIX/RequirementsTracker
- Issues: https://github.com/DRYTRIX/RequirementsTracker/issues
- Documentation: ENHANCEMENTS.md and REQUIREMENTS.md