TinAMU is a university social platform prototype for computer-science students. The project combines a Flask API and a React frontend to explore peer discovery, messaging, quizzes, and resource sharing inside a single campus-oriented product.
- Student authentication and profile flows
- Matching / social feed concepts
- Real-time messaging foundations with Socket.IO
- Quiz and learning-oriented interactions
- Shared resources for the university community
Runtime secrets are expected to come from environment variables. For local development, copy backend/.env.example to backend/.env, set your values, and start the backend with explicit credentials rather than relying on static secrets committed in code.
| Layer | Technologies |
|---|---|
| Frontend | React, Vite, Redux Toolkit, React Router, Axios |
| Backend | Flask, Flask-JWT-Extended, Flask-SQLAlchemy, Flask-Migrate, Flask-SocketIO |
| Database | SQLite by default, PostgreSQL optional |
| Realtime | Socket.IO |
tinamu/
├── backend/
│ ├── app/
│ │ ├── models/
│ │ ├── routes/
│ │ ├── services/
│ │ ├── sockets/
│ │ └── utils/
│ ├── config.py
│ ├── run.py
│ └── seed.py
└── frontend/
├── src/
│ ├── components/
│ ├── services/
│ ├── socket/
│ └── store/
└── public/
cd backend
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
python seed.py
python run.pyThe local demo now boots on SQLite without provisioning PostgreSQL.
If you explicitly want PostgreSQL, install the optional adapter too:
pip install -r requirements-postgres.txtcd frontend
npm install
npm run devBackend sanity check:
python3 -m compileall backend/app backend/run.py backend/config.py backend/seed.pyFrontend production build:
cd frontend
npm run buildThe repository ships only with backend/.env.example.
Create your local file with:
cp backend/.env.example backend/.envThen set values appropriate for your machine:
SECRET_KEYJWT_SECRET_KEYDATABASE_URLCORS_ORIGINS
Do not commit local environment files.
- This repository is a functional student product demo, not a production deployment.
- Sensitive configuration has been moved out of tracked files.
backend/API.mddocuments the API surface in more detail.