An interactive web application for browsing and analyzing U.S. Presidential Executive Orders.
The Executive Orders Archive provides a comprehensive platform for accessing, analyzing, and understanding U.S. Presidential Executive Orders. The application features an interactive timeline visualization and detailed information about each executive order.
- Interactive timeline visualization of Executive Orders
- Detailed information about each Executive Order
- Search and filter capabilities
- Integration with Federal Register data
- Regular updates for new Executive Orders
- ✅ Environment setup
- ✅ Backend setup
- ✅ Database setup
- ✅ Federal Register API integration
- ✅ Backend API endpoints
- ✅ Data fetching functionality
- ✅ Backend tests
- ✅ Frontend project setup
- ✅ API client infrastructure
- ✅ TanStack Query integration
- 🔄 User interface components
- 🔄 Interactive visualizations
- 🔄 Authentication system
- 🔄 Advanced search capabilities
executive-orders-archive/
├── backend/ # Flask backend application
│ ├── app/ # Application code
│ │ ├── models/ # Database models
│ │ ├── routes/ # API routes
│ │ ├── services/ # Business logic
│ │ └── utils/ # Utility functions
│ ├── tests/ # Test suite
│ └── README.md # Backend documentation
├── frontend/ # React frontend application
│ ├── src/ # Source code
│ │ ├── components/ # React components
│ │ ├── pages/ # Page components
│ │ ├── services/ # API services and queries
│ │ ├── types/ # TypeScript definitions
│ │ └── utils/ # Utility functions
│ ├── public/ # Static assets
│ └── README.md # Frontend documentation
├── docs/ # Project documentation
├── .gitignore # Git ignore rules
├── LICENSE # MIT license
└── README.md # This file
- Python 3.9+
- PostgreSQL 17+
- Redis (for task queue)
- Node.js 18+ (for frontend)
-
Navigate to the backend directory:
cd backend
-
Create and activate a virtual environment:
python -m venv .venv .\.venv\Scripts\Activate.ps1 -
Install dependencies:
pip install -r requirements.txt -
Configure environment variables:
- Copy
.env.exampleto.env - Update the values in
.envwith your configuration
- Copy
-
Initialize the database:
flask db init flask db migrate -m "Initial migration" flask db upgrade
-
Run the development server:
flask run
-
Optional: Run data fetch script to populate the database:
python scripts/fetch_data.py --days-back 365
-
Navigate to the frontend directory:
cd frontend
-
Install dependencies:
npm install
-
Configure environment variables:
- Copy
.env.exampleto.env.local - Update the values if needed (defaults should work with local backend)
- Copy
-
Run the development server:
npm run dev
The backend provides the following API endpoints:
GET /api/v1/executive-orders: Get a list of executive orders with filtering, sorting, and paginationGET /api/v1/executive-orders/{eo_id}: Get a single executive order by IDGET /api/v1/latest-executive-orders: Get the latest executive ordersGET /api/v1/executive-orders/stats: Get statistics about executive ordersGET /api/v1/executive-orders/{eo_id}/related: Get orders related to a specific executive order
We follow a modified Git Flow branching strategy:
main: Production-ready codedevelop: Integration branch for featuresfeature/*: Feature branchesbugfix/*: Bug fix branchesrelease/*: Release preparation branches
Please see CONTRIBUTING.md for detailed contribution guidelines.
This project is licensed under the MIT License - see the LICENSE file for details.