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