An open API service indexing awesome lists of open source software.

https://github.com/hafiz-shamnad/ticslab

TicsLab is an IoT collaboration platform designed to simplify the creation and management of Internet of Things projects.
https://github.com/hafiz-shamnad/ticslab

iot iot-application iot-platform nextjs react tailwindcss typescript

Last synced: 3 months ago
JSON representation

TicsLab is an IoT collaboration platform designed to simplify the creation and management of Internet of Things projects.

Awesome Lists containing this project

README

          

# ๐Ÿ› ๏ธ TICS โ€” Team Integrated Collaborative System

TICS is a modern, full-stack collaborative development platform tailored for teams working on projects involving code, design, and file sharing. Think GitHub meets real-time collaboration, powered by secure APIs and a clean Next.js frontend.

## ๐Ÿš€ Features

* ๐Ÿง‘โ€๐Ÿ’ป **Repository Management**: Create, manage, and collaborate on repositories
* ๐Ÿ“ **File Upload & Sharing**: Upload files to repos securely, with role-based access control
* ๐Ÿ‘ฅ **Collaborators System**: Add members with `read`, `write`, or `admin` roles
* ๐Ÿ”’ **JWT Auth System**: Secure login and protected routes using FastAPI + Auth tokens
* ๐ŸŒ **Cross-Origin Enabled**: CORS setup for frontend-backend integration
* โš™๏ธ **Rate Limiting**: API protection with `slowapi`

## ๐Ÿงฑ Tech Stack

| Frontend | Backend | Auth | Dev Tools |
| ----------------- | -------------- | ----------------------- | ------------------ |
| Next.js (App Dir) | FastAPI | JWT Bearer Tokens | Docker-ready (WIP) |
| Tailwind CSS | SQLAlchemy ORM | OAuth Support (Planned) | RESTful APIs |

---

## ๐Ÿ“‚ Project Structure

```
ticslab/
โ”œโ”€โ”€ backend/
โ”‚ โ”œโ”€โ”€ auth/ # Authentication system (login, JWT, models)
โ”‚ โ”œโ”€โ”€ repos/ # Repositories and files logic
โ”‚ โ”œโ”€โ”€ storage/ # Uploaded files stored per repo
โ”‚ โ”œโ”€โ”€ main.py # FastAPI app entry
โ”‚ โ””โ”€โ”€ config.py # CORS + DB configs
โ”œโ”€โ”€ frontend/
โ”‚ โ”œโ”€โ”€ app/
โ”‚ โ”‚ โ”œโ”€โ”€ repos/[repoId]/files/page.tsx # Files listing UI
โ”‚ โ”‚ โ””โ”€โ”€ context/AuthContext.tsx # Auth token context
โ”‚ โ””โ”€โ”€ next.config.js # Rewrites to backend API
โ””โ”€โ”€ README.md
```

---

## โš™๏ธ Getting Started

### ๐Ÿ”ง Backend

```bash
cd backend
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
uvicorn main:app --reload
```

### ๐Ÿ’ป Frontend

```bash
cd frontend
npm install
npm run dev
```

Make sure your `.env` and `config.py` are correctly configured.

---

## ๐Ÿ” Auth Flow

* On login, a JWT token is issued and stored in frontend context
* All protected endpoints require `Authorization: Bearer `
* User roles (`read`, `write`, `admin`) define repo access levels

---

## ๐Ÿ“ฆ API Overview

| Method | Endpoint | Description |
| ------ | ------------------------------ | ------------------------------ |
| GET | `/api/repos/{id}/files/` | List files in a repo |
| POST | `/api/repos/{id}/files/upload` | Upload file (admin/write only) |
| GET | `/api/repos/{id}/files/{file}` | Download specific file |
| POST | `/api/auth/login` | Login and get token |
| GET | `/api/auth/me` | Verify token and fetch user |

---

## ๐Ÿงช Known Issues

* Double requests in dev mode due to React Strict Mode
* No real-time collaboration yet (planned via WebSockets)
* Minimal error handling for file overwrite/duplicate logic

---

## ๐Ÿค Contribution

Want to contribute or test TICS for your team? Feel free to fork and submit a PR โ€” or [start a discussion](#) with your idea.

---

## ๐Ÿ“œ License

MIT ยฉ Hafiz Shamnad