diff --git a/README.md b/README.md new file mode 100644 index 0000000..d482925 --- /dev/null +++ b/README.md @@ -0,0 +1,41 @@ +# CShare + +CShare is a production-shaped file sharing app with a Vite/React frontend and a TypeScript/Express backend. It supports file upload, expiring share links, recipient previews for small safe files, downloads, dashboard stats, and an admin API. + +## Project Layout + +- `cshare-app/` - React frontend, Vite build, precompressed static assets. +- `backend/` - Express API, local disk storage adapter, JSON metadata store, auth primitives, admin API. +- `PRODUCTION.md` - deployment notes, required env, Nginx guidance. +- `deploy/` - sample service and reverse-proxy config. + +## Local Development + +Backend: + +```sh +cd backend +npm install +npm run dev +``` + +Frontend: + +```sh +cd cshare-app +npm install +VITE_API_BASE_URL=http://localhost:4001 npm run dev +``` + +## Final Checks + +```sh +cd backend && npm run check +cd ../cshare-app && npm run check +``` + +Frontend builds create gzip and Brotli assets in `cshare-app/dist/`. Backend production startup requires strong `JWT_ACCESS_SECRET`, `JWT_REFRESH_SECRET`, and `ADMIN_API_KEY` values. + +## Publish Notes + +Before publishing, configure the environment in `PRODUCTION.md`, serve `cshare-app/dist/` with a static host or Nginx, and proxy `/api` plus `/health` to the backend. The included local JSON/disk persistence is suitable for a single-server launch; move to PostgreSQL/R2 before depending on durable multi-server storage.