TekNotes is a web-based platform designed to enhance collaboration and resource-sharing among students. Users can share, access, and collaborate on notes, study materials, and other academic resources — fostering a supportive learning environment that enriches the overall academic experience.
Built for CSIT327 Information Management 2
| Name | Role |
|---|---|
| Christian Gelo Cadavos | Developer |
| Simon Lyster Escaño | Developer |
| Adrian Sajulga | Developer |
- 📝 Note sharing — create, publish, and browse community notes
- 💬 Real-time chat — WebSocket-powered direct messaging between users
- 🔔 Notifications — stay updated on activity relevant to you
- 🔍 Advanced search — find notes and users quickly
- 🏷️ Tags & courses — organize content by subject
- 🔐 OAuth login — sign in with Google or Microsoft via django-allauth
| Layer | Technology |
|---|---|
| Backend | Django 5.1.1, Daphne (ASGI) |
| Real-time | Django Channels 4, Redis 7 |
| Database | PostgreSQL 16 (prod), SQLite (dev) |
| Frontend | Django Templates, Tailwind CSS, jQuery |
| Auth | django-allauth (Google, Microsoft) |
| Editor | CKEditor 5 |
| Storage | SFTP (prod), local media (dev) |
| Container | Docker Compose |
-
Copy the example environment file and fill in your values:
cp .env.example .env
-
Start all services:
docker compose up -d
The app will be available at
http://localhost:8000. Migrations and static file collection run automatically on startup.
Prerequisites: Python 3.12+, a running Redis instance (for WebSocket support)
-
Create and activate a virtual environment:
# Linux / macOS python3 -m venv venv && source venv/bin/activate # Windows python -m venv venv && .\venv\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
-
Copy and configure environment variables:
cp .env.example .env # Edit .env — at minimum set DJANGO_SECRET_KEY -
Apply migrations:
python manage.py migrate
-
Start the development server:
python manage.py runserver
The app will be available at
http://localhost:8000.
See .env.example for the full list. Key variables:
| Variable | Description |
|---|---|
DJANGO_SECRET_KEY |
Django secret key |
DEBUG |
True for dev, False for prod |
ALLOWED_HOSTS |
Space-separated list of allowed hostnames |
CSRF_TRUSTED_ORIGINS |
Comma-separated trusted origins for HTTPS |
DB_* |
PostgreSQL connection settings |
REDIS_URL |
Redis URL (e.g. redis://redis:6379) |
SFTP_* |
SFTP credentials for production media storage |
GOOGLE_CLIENT_ID/SECRET |
Google OAuth credentials |
| Type | Format |
|---|---|
| Feature | feature/<feature-name> |
| Bug fix | fix/<issue-description> |
| Hotfix | hotfix/<issue-description> |
| Docs | docs/<update-description> |
Please keep branch names descriptive and follow this structure to maintain consistency.
This project is open-source and available under the MIT License.