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.
- Host: GitHub
- URL: https://github.com/hafiz-shamnad/ticslab
- Owner: Hafiz-shamnad
- License: mit
- Created: 2025-06-14T09:25:00.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2025-06-18T13:49:28.000Z (about 1 year ago)
- Last Synced: 2025-06-18T14:40:46.504Z (about 1 year ago)
- Topics: iot, iot-application, iot-platform, nextjs, react, tailwindcss, typescript
- Language: TypeScript
- Homepage:
- Size: 2.08 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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