Skip to content

Latest commit

 

History

History
266 lines (184 loc) · 5.15 KB

File metadata and controls

266 lines (184 loc) · 5.15 KB

Absolutely! Here’s the full README.md content in Markdown file format, ready to save as README.md in your GitHub repo. You can copy the content below directly into a .md file.


# 🌠 Novalyn

> *New light for your workflow.*

**Novalyn** is a modern, intelligent project and task management platform that helps teams stay **connected, organized, and focused**.  
Built with **React** for the frontend and **Django REST Framework (DRF)** for the backend, Novalyn empowers teams to plan, collaborate, and deliver with clarity.

---

## 🚀 Features

- Create and manage **projects, tasks, and subtasks**
- Assign tasks to team members with **due dates, status, and priority**
- Real-time collaboration with **comments and activity logs**
- **Kanban board**, **list view**, and **calendar view**
- File attachments and task-related documents
- Email & in-app **notifications** for updates and reminders
- GitHub and Slack integration for workflow automation
- Role-based permissions (Admin, Member, Guest)

---

## 🧩 Tech Stack

| Layer | Technology |
|-------|------------|
| Frontend | React, TypeScript, Tailwind CSS, React Query, Zustand |
| Backend | Django, Django REST Framework, PostgreSQL |
| Realtime | Django Channels / WebSockets |
| Storage | AWS S3 (attachments) |
| Auth | JWT (djangorestframework-simplejwt) |
| Dev Tools | Docker, Prettier, ESLint, Black, GitHub Actions |

---

## 📁 Project Structure

### Backend (Django)

backend/ ├── manage.py ├── requirements.txt ├── novalyn/ │ ├── settings.py │ ├── urls.py │ └── wsgi.py ├── apps/ │ ├── users/ │ ├── projects/ │ ├── tasks/ │ └── comments/ └── media/ # uploaded files


### Frontend (React)

frontend/ ├── package.json ├── tsconfig.json ├── public/ └── src/ ├── components/ ├── pages/ ├── hooks/ ├── services/ # API calls ├── context/ # state management ├── utils/ └── App.tsx


---

## ⚙️ Installation

### Prerequisites
- Python 3.10+
- Node.js 18+
- PostgreSQL 14+
- Docker (optional but recommended)

---

### Backend Setup

1. **Clone the repo**
```bash
git clone https://github.com/yourusername/novalyn.git
cd novalyn/backend
  1. Create and activate virtual environment
python -m venv venv
source venv/bin/activate   # Linux/macOS
venv\Scripts\activate      # Windows
  1. Install dependencies
pip install -r requirements.txt
  1. Set up environment variables Create a .env file in backend/:
SECRET_KEY=your_django_secret_key
DEBUG=True
DB_NAME=novalyn_db
DB_USER=postgres
DB_PASSWORD=yourpassword
DB_HOST=localhost
DB_PORT=5432
  1. Run migrations
python manage.py migrate
  1. Start the development server
python manage.py runserver

The backend API will be available at http://localhost:8000/api/


Frontend Setup

  1. Navigate to frontend directory:
cd ../frontend
  1. Install dependencies:
npm install
  1. Start development server:
npm start

Frontend will run at http://localhost:3000 and communicate with the backend API.


🔗 Connecting Frontend & Backend

  • In frontend/src/services/api.ts, set the API base URL:
export const API_BASE_URL = "http://localhost:8000/api";
  • Use React Query or axios to interact with the DRF backend.
  • Example JWT authentication:
axios.defaults.headers.common['Authorization'] = `Bearer ${localStorage.getItem('accessToken')}`;

🛠️ Usage

  1. Sign up or log in as a user
  2. Create a project
  3. Add tasks to the project
  4. Assign tasks to team members
  5. Update task status, priority, and due date
  6. Comment on tasks for collaboration
  7. Drag tasks on Kanban board to update progress
  8. Receive notifications for updates and deadlines

🌐 Deployment (Optional)

  • Backend: Deploy Django on Heroku, Render, or AWS Elastic Beanstalk
  • Frontend: Deploy React app on Vercel, Netlify, or AWS S3 + CloudFront
  • Database: Use managed PostgreSQL (ElephantSQL, AWS RDS)
  • Storage: AWS S3 for file uploads

👥 Contribution

We welcome contributions! Follow these steps:

  1. Fork the repository
  2. Create a branch:
git checkout -b feature/your-feature-name
  1. Make changes
  2. Run tests
# backend
python manage.py test

# frontend
npm test
  1. Commit changes using Conventional Commits
git commit -m "feat(tasks): add due date notifications"
  1. Push the branch and open a Pull Request

📝 License

MIT License © 2025 Novalyn See LICENSE for details.


📌 Contact

Project Maintainer: Kotoka Emmanuel GitHub: https://github.com/keyy-tech/novalyn


🔮 Roadmap (Optional)

  • Real-time updates via WebSockets
  • Calendar & Gantt views
  • Advanced reporting & analytics
  • Mobile app (React Native)
  • GitHub & Slack integrations

Novalyn — Turning chaos into clarity for your team.