Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

InfCloud

InfCloud is a file management web application that leverages Google Photos for effectively unlimited storage. This project is still very minimal

The project consists of:

  • A FastAPI (Python) backend located in the root directory.
  • A Vite + React frontend located under web/.
  • Additional helper libraries under gpmc/.

The application is currently under active development and serves as a prototype. It includes token-based authentication, file categorization, and a modern React UI built with TailwindCSS and Radix components.


Table of Contents

  1. Getting Started
  2. Development Workflow
  3. Testing
  4. Configuration
  5. Project Structure
  6. License

Getting Started

Prerequisites

  • Python 3.11+ (3.10 may work, but 3.11 is recommended)
  • Node.js 18+ ( for dev )
  • npm 10+ ( for dev )
  • Git ( for dev )

Python Setup

cd d:/Marvel/InfCloud
python -m venv .venv
.venv/Scripts/activate   # On Windows
pip install -r requirements.txt

All backend dependencies are listed in requirements.txt.
If you install new packages, update this file.


Front-end Setup ( for development )

cd web
npm install

The frontend is built using Vite + React + TypeScript.
Dependencies are managed via package.json.


Development Workflow

Development Mode

In development, backend and frontend run separately.

1. Start the Backend

cd d:/Marvel/InfCloud
python main.py

Backend runs at:

http://localhost:8000

Interactive API documentation is available at:

http://localhost:8000/docs

2. Start the Frontend (Vite Dev Server)

cd web
npm run dev

Open:

http://localhost:5173

In development mode:

  • Vite serves the frontend
  • FastAPI serves API routes
  • The frontend communicates with http://localhost:8000

Production Mode (Automatic Static Hosting)

In production, the FastAPI backend automatically serves the built frontend.

Build the Frontend

cd web
npm run build

This generates:

web/dist/

Automatic Static Hosting

If the directory defined by:

WEB_DIRECTORY=web/dist

exists, the backend will:

  • Serve static assets (JS, CSS, images)
  • Serve index.html for all non-API routes (React Router support)
  • Continue serving API endpoints
  • Keep interactive documentation available at /docs

This means in production you only need to run:

python main.py

Then open:

http://localhost:8000

No separate frontend server is required.


Testing

Tests are not yet implemented.

  • Frontend includes @testing-library/react
  • Backend should use pytest

Please add tests for new features before submitting pull requests.


Project Structure

.
├── gpmc/             # Python helper library
├── main.py           # FastAPI entrypoint
├── requirements.txt  # Python dependencies
├── web/              # React/Vite frontend
│   ├── src/          # React source code
│   ├── dist/         # Production build output (generated)
│   ├── package.json
│   └── ...
└── README.md

License

This project is licensed under the MIT License.

You are free to use, modify, and distribute this software, including for commercial purposes, provided that the original copyright notice and license are included in any copies or substantial portions of the Software.

See the LICENSE file for full details.

About

No description, website, or topics provided.

Resources

Contributing

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages