📚 docs(SRS): add detailed software requirements specification and API endpoints

This commit is contained in:
sankalp committed 2025-06-15 03:53:58 +05:45
1 parent 7789733aa3
commit 1a4dbf10bb
2 files changed
+324 -8

No files matched your search

+8 -8
View File
@@ -9,15 +9,15 @@ A web-based platform designed to connect, engage, and empower alumni. This proje
## 📄 Software Requirements Specification (SRS)
The formal SRS document is currently being prepared and will be uploaded soon. It will include:
Check out our detailed [Software Requirements Specification](docs/SRS.md) that includes:
- Functional and non-functional requirements
- System architecture
- Feature breakdown
- Technology stack
- Development roadmap
> 📌 _The SRS will be available in the `/docs` directory or linked here once published._
- Complete tech stack (React/TypeScript, Django, PostgreSQL, Redis, etc.)
- Detailed core features (User & Access, Alumni Directory, Events, Jobs, Messaging, etc.)
- Technical architecture and implementation details
- Database schema and API endpoints
- Development requirements and setup instructions
- User roles and permissions
- Development phases and deployment guidelines
## 🌟 Planned Features
+316
View File
@@ -0,0 +1,316 @@
# AlumniVerse - Software Requirements Specification
## Project Overview
**AlumniVerse** is a web-based alumni network management platform built with React/TypeScript frontend and Django REST API backend.
## Tech Stack
- **Frontend**: React with TypeScript, Tailwind CSS
- **Backend**: Django with Django REST Framework
- **Database**: MySQL (development), PostgreSQL (production)
- **Authentication**: JWT with optional Multi-Factor Authentication (MFA)
- **Real-time**: WebSockets via Django Channels and Redis for messaging and notifications
## 🚀 Core Features
### 👤 User & Access
- Email-based registration and login (JWT)
- Optional multi-factor authentication (MFA)
- Roles: Alumni, Staff, Admin
- Password reset & session timeout
### 🧑‍🎓 Alumni Directory
- Rich profiles (education, work, location)
- Filtered search + map view
- Connection requests & privacy settings
### 📅 Events
- Host online/offline events
- Register, track attendance, and integrate calendars
- Support for paid events (Stripe/PayPal)
### 💼 Jobs & Careers
- Post jobs, apply, and upload resumes
- Set alerts and book career sessions
- Track certifications and skills
### 💬 Messaging
- Real-time 1:1 and group chat (WebSockets)
- File sharing, search, and message history
- Forums with moderation tools
### 📚 Learning & Mentorship
- Enroll in courses, track progress
- Get certifications
- Match with mentors and follow learning paths
### 💰 Donations
- One-time or recurring donations
- Campaigns and receipt generation
### 📊 Analytics
- User activity and event insights
- Custom reports and dashboards
- Fundraising and donation metrics
## 🔧 Technical Overview
### 💻 Frontend (What users see)
- Built with modern tools (React, TypeScript) for a fast and smooth experience
- Works well on phones, tablets, and computers
- Clean and responsive design using Tailwind CSS
- Forms, buttons, and pages that update quickly and feel like an app
### 🧠 Backend (What powers the system)
- Built with Django (Python) to handle logic, data, and security
- Uses an API system so frontend and backend can talk to each other
- Handles login, user roles, events, messages, and more
- Includes admin panel to manage users, jobs, events, etc.
### 🔐 Security
- Passwords are safely encrypted
- Login uses secure tokens (JWT)
- Optional two-step verification for better protection
- Private data is kept safe and only visible to the right users
### 💬 Real-Time Messaging
- Users can chat instantly — like WhatsApp or Messenger
- System uses WebSocket technology to send and receive messages live
- Group chats and file sharing are also supported
### 🗃️ Database
- Stores all information (users, messages, jobs, etc.) in a structured way
- Uses MySQL during development and PostgreSQL in live servers
### 💸 Payments & Events
- Supports paid event registrations and donations (via Stripe or PayPal)
- Sends confirmation emails after payments
- Can sync with Google or Outlook Calendar
### 📊 Dashboard & Reports
- Admins can view analytics like:
- Active users
- Event attendance
- Job applications
- Donation totals
- Reports can be downloaded when needed
### 🚀 Deployment & Hosting
- Runs on reliable servers using modern web hosting tools
- Sends emails, handles chat, stores files, and keeps things running smoothly
### Database Schema (Key Entities) (Subjected to Change)
```
Users: id, email, password_hash, role, created_at, updated_at
Profiles: user_id, first_name, last_name, bio, location, graduation_year
Events: id, title, description, date, capacity, location, event_type
Jobs: id, title, company, description, requirements, salary_range
Messages: id, sender_id, recipient_id, content, timestamp
Donations: id, user_id, amount, campaign_id, payment_status
```
### API Endpoints (Core)(Can be Added/Modified)
```
Authentication:
POST /api/auth/login
POST /api/auth/register
POST /api/auth/refresh
Alumni Directory:
GET /api/alumni?filters
GET /api/alumni/{id}
PUT /api/alumni/{id}
Events:
GET /api/events
POST /api/events
POST /api/events/{id}/register
Jobs:
GET /api/jobs
POST /api/jobs
POST /api/jobs/{id}/apply
Messages:
GET /api/messages
POST /api/messages
WebSocket: /ws/chat/
Donations:
POST /api/donations
GET /api/donations/history
```
## 🧑‍💻 Development Requirements
### 💻 System Requirements
- **Operating System**: Linux (recommended because I use that 😂), macOS, or Windows (WSL works well)
- **Python**: 3.10 or later
- **Node.js**: 18 or later (required for React + Vite)
- **npm** or **pnpm**: Latest stable version
- **MySQL**: 8.x (for development)
- **PostgreSQL**: 14+ (optional, for production testing)
- **Redis**: 6.x or later (for WebSocket and caching)
- **Docker** (optional): For containerized development
---
### 🔧 Development Tools
- **Code Editor**: VS Code or Neovim (with your favorite plugins)
- **Version Control**: Git + GitHub
- **API Testing & Documentation**: Swagger or Django REST Framework’s built-in documentation UI
- **Browser DevTools**: Chrome or Firefox (for frontend debugging)
### 📦 Backend Setup (Django)
- Create and activate virtual environment
- Install dependencies via `pip` or `uv`
- Set up `.env` file with:
- `SECRET_KEY`
- `DEBUG`
- `DB_CONFIG` (MySQL/Postgres)
- `REDIS_URL`
- `EMAIL_CONFIG`
- Run database migrations: `python manage.py migrate`
- Start development server: `python manage.py runserver`
### 💻 Frontend Setup (React + Tailwind)
- Navigate to the frontend directory
- Install dependencies: `npm install` or `pnpm install`
- Start dev server: `npm run dev`
- Tailwind is pre-configured using `postcss` and `autoprefixer`
- Axios is used to connect to the backend API
### 🔄 Real-time Features
- Redis server must be running locally
- WebSocket is enabled via Django Channels
- Use `daphne` or `uvicorn` for running ASGI app in dev
- Configure CORS and allowed origins for frontend-backend communication
### 🧪 Testing & Linting
- Django tests: `python manage.py test`
- React tests: `npm run test`
- Linting:
- Python: `ruff` or `flake8`
- JavaScript/TS: `eslint` + `prettier`
- Git pre-commit hooks (optional): Set up using `pre-commit`
### 🐳 Docker (Optional Dev Workflow)
- Dockerfile and `docker-compose.yml` included
- Run full stack with: `docker-compose up`
- Supports live-reloading in both frontend and backend
### 📝 Other Requirements
- Keep code modular and reusable
- Follow project naming conventions and folder structure
- Write docstrings, comments, and maintain clean commits
- Regularly pull and merge from the main branch
---
> ✅ Tip: Use a `.env.example` file to share config structure with the team.
## User Roles & Permissions (Will be Added/Modified)
**Alumni:**
- View/edit own profile
- Search directory
- Register for events
- Apply for jobs
- Send messages
- Make donations
**Staff:**
- Manage events
- Moderate content
- View analytics
- Manage job postings
**Admin:**
- Full system access
- User management
- System configuration
- Analytics access
## Development Phases
**The development will be divided into the following phases:**
**Most of the process may not be possible to cover all the phases**
### 1. Planning & Requirement Analysis
- Finalize feature list and project scope
- Define user roles and access levels
- Design database schema and API endpoints
- Prepare wireframes and UI mockups
### 2. Backend Development (Django)
- Set up Django project with REST Framework and Channels
- Implement user authentication (JWT + MFA)
- Build core APIs for Alumni Directory, Events, Jobs, Messaging, etc.
- Integrate Redis for caching and WebSocket support
- Write unit tests for backend functionality
### 3. Frontend Development (React + Vite + Tailwind)
- Initialize React project with TypeScript and Tailwind CSS
- Build reusable UI components aligned with wireframes
- Connect frontend to backend APIs using Axios
- Implement real-time messaging via WebSocket connection
- Add client-side validation and error handling
- Write frontend tests for critical components
### 4. Integration & Testing
- Test full user flows end-to-end (registration, messaging, events)
- Perform cross-browser and responsiveness testing
- Fix bugs and optimize performance
- Use Swagger or DRF docs to validate API contracts
### 5. Deployment & Monitoring (It May not be Possible to cover all the steps in this phase)
- Prepare production environment (PostgreSQL, Redis, Docker)
- Deploy backend and frontend (e.g., on VPS, cloud provider)
- Set up SSL, domain, and environment variables
- Monitor logs and app performance post-deployment
- Collect user feedback for future improvements
---
> 🔑 Tip: Follow Agile iterations with regular commits, code reviews, and testing in each phase for smoother delivery.
---
**Document Version:** 0.1
**Last Updated:** June 15, 2025
**Target Audience:** Development Team