FieldOps is a collaborative platform for infrastructure projects. It is built to pull scattered metrics, teams and insights into one organized hub. FieldOps brings order to projects by giving the team an overview of project health and performance, while ensuring the team collaborates from a position of understanding of the projects' needs and progress, while keeping the entire operation aligned from day one to handover.
- Everything In One Place: Pulls scattered project data and summaries into one workspace, providing an understanding of project health.
- Collaborative Project Health: Understand the health of your operations through team coordination, communication, and automated reminders, keeping everyone aligned on objectives.
- Corporate & Project History: Establish a historical footprint that preserves the legacy of projects and the company, ensuring past context and collaboration inform future success.
The platform is built with a modern and robust technology stack:
- Frontend:
- Framework: Next.js (React)
- Language: TypeScript
- Styling: Tailwind CSS
- Authentication: Firebase Authentication
- Backend:
- Framework: FastAPI
- Language: Python
- AI Service: Google Cloud Vertex AI (Gemini)
- Development Environment:
- The entire development environment is managed by Nix for consistency and reproducibility.
This project is organized as a monorepo to simplify development and dependency management.
/
├── frontend/ # Next.js application
├── backend/ # FastAPI application
├── scripts/ # Additional scripts
└── ...
This project uses Nix to provide a consistent and reproducible development environment. All other dependencies, including Python, Node.js, and Redis, are managed automatically.
If you don't have Nix installed, you must install it first. It's a one-time setup.
- On macOS or Linux: Run the official installer from your terminal:
Follow the on-screen instructions.
sh <(curl -L https://nixos.org/nix/install) --daemon - On Windows: It is recommended to use the Windows Subsystem for Linux (WSL) and then follow the Linux instructions above inside your WSL terminal.
# Replace with the actual URL of your repository
git clone https://github.com/your-username/fieldops.git
cd fieldopsThis project is configured to work with Nix-aware tools like Project IDX or by using the nix-shell command.
- In Project IDX: The environment is activated automatically when you open the workspace. The Redis server is also started for you.
- In a local terminal: Navigate to the project root and run:
nix-shell
This command reads the .idx/dev.nix file and gives you a shell with all the tools (Python, Node, Redis) ready to go. You may need to start the Redis server manually by running redis-server --daemonize yes.
The backend requires API keys and other secrets. You need to create a .env file for local development.
- Navigate to the
backenddirectory:cd backend - Create a new file named
.env. - Copy the contents of
backend/.env.exampleinto your new.envfile and fill in your secret API keys and database credentials.
Before running the application for the first time, you need to create the database tables. This project uses a script to initialize the database based on the SQLAlchemy models.
From the root of the project, run the following command:
python scripts/init_db.pyThis will create all the necessary tables in your database.
Once your environment and database are set up, you can run the application servers. These commands should be run from the root of the project.
In your terminal, run the following commands:
cd backend
python main.pyThis will start the FastAPI server on http://localhost:8000. You should leave this terminal running.
Open a new terminal window. In the new terminal, run the following commands from the project root:
cd frontend
npm install
npm run devThis will start the Next.js development server on http://localhost:3000.