Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
61 commits
Select commit Hold shift + click to select a range
a34021b
Fix get_random_ingredients to return basil instead of parsley
MM674294 Apr 23, 2026
7f61878
Add sys.path configuration to Sphinx documentation builder
MM674294 Apr 23, 2026
34026d6
Update sys.path configuration for Sphinx documentation and enable aut…
stuti-2005 Apr 23, 2026
0877d5e
Add initial documentation for lumache module with function and except…
stuti-2005 Apr 23, 2026
3f5a802
Add backend modules to autosummary in API documentation
stuti-2005 Apr 23, 2026
670e0d2
Refactor API documentation structure and update sys.path for Sphinx
stuti-2005 Apr 23, 2026
0e4c818
Refactor Sphinx configuration and update project metadata for UNIsoc
stuti-2005 Apr 23, 2026
b914fcd
Add initial documentation for models and serializer modules
stuti-2005 Apr 23, 2026
4bd26b8
Update MOCK_MODULES to include 'views' and 'authentication' for impro…
stuti-2005 Apr 23, 2026
5b11371
Add initial views documentation with autodata inclusion
stuti-2005 Apr 23, 2026
1bf2679
Add views documentation with currentmodule and autodata directives
MM674294 Apr 24, 2026
4c515bb
Merge branch 'main' of https://github.com/SETAP-UniSoc/code-documenta…
MM674294 Apr 24, 2026
0b04ddc
Remove 'models', 'serializer', and 'views' from MOCK_MODULES for clar…
stuti-2005 Apr 24, 2026
e06ff11
Update sys.path in conf.py for relative path and add views.py for API…
stuti-2005 Apr 24, 2026
51e71f9
Refactor views documentation to include automodule directive with mem…
stuti-2005 Apr 24, 2026
155016f
Update serializer.rst to include automodule directives for models and…
stuti-2005 Apr 24, 2026
05c0e8c
Refactor views.py to replace imports with mocked dependencies for doc…
stuti-2005 Apr 24, 2026
1afdbe3
Add models and serializers for UNIsoc application
stuti-2005 Apr 24, 2026
08e1dbf
Refactor mock module list in conf.py to include missing Django auth m…
stuti-2005 Apr 24, 2026
8338b03
Refactor serializer.py to use MagicMock for models and serializers in…
stuti-2005 Apr 24, 2026
be7b8e3
Update MOCK_MODULES in conf.py to include additional Django auth modules
stuti-2005 Apr 24, 2026
3dffe30
Update models and serializers documentation with detailed description…
stuti-2005 Apr 24, 2026
d322cc8
Remove outdated models section from serializer documentation
stuti-2005 Apr 24, 2026
25c0b7e
Refactor conf.py and views.py to remove mock dependencies and impleme…
stuti-2005 Apr 24, 2026
2f26811
Update API reference documentation with correct module paths and form…
stuti-2005 Apr 24, 2026
34244d5
Update Django settings module path in conf.py for correct configuration
stuti-2005 Apr 24, 2026
9338c80
Fix project root path in conf.py for correct module resolution
stuti-2005 Apr 24, 2026
6df9887
Add BASE_DIR to sys.path in conf.py for improved module resolution
stuti-2005 Apr 24, 2026
692843e
Refactor conf.py to define BASE_DIR directly for improved clarity and…
stuti-2005 Apr 24, 2026
22daffa
Update BASE_DIR in conf.py for correct project root path
stuti-2005 Apr 24, 2026
9f6f921
Fix BASE_DIR path in conf.py for correct project root resolution
stuti-2005 Apr 24, 2026
30999c5
Update BASE_DIR in conf.py to use absolute path for correct project r…
stuti-2005 Apr 24, 2026
f8c7807
Update API reference in api.rst for improved clarity and structure
stuti-2005 Apr 24, 2026
a572866
Add autosummary section to api.rst for improved module organization
stuti-2005 Apr 24, 2026
15aa5df
Refactor conf.py to remove Django setup and streamline mock module ha…
stuti-2005 Apr 24, 2026
6bc7e47
Refactor conf.py to streamline mock module handling and ensure correc…
stuti-2005 Apr 24, 2026
1d12425
Add documentation for authentication models and serializers
stuti-2005 Apr 24, 2026
3c32ede
Fix autosummary paths in api.rst to include 'backend.' prefix for cor…
stuti-2005 Apr 24, 2026
7f77b5b
Add generated documentation for authentication models and serializers
stuti-2005 Apr 24, 2026
ccfcb44
Fix event date check in JoinEventView to use start_time for validation
stuti-2005 Apr 24, 2026
75358b7
Fix Sphinx import path in conf.py to correctly point to the backend d…
stuti-2005 Apr 25, 2026
3866e64
Refactor import statements in views.py for clarity and consistency
stuti-2005 Apr 25, 2026
de68dd4
Set Django settings module and initialize Django in conf.py
stuti-2005 Apr 25, 2026
81048bb
Update table of contents in index.rst
stuti-2005 Apr 29, 2026
6839905
Add project scope and objectives documentation
stuti-2005 Apr 29, 2026
653549e
Create requirements document for users and admins
stuti-2005 Apr 29, 2026
e4c5a77
Add implementation documentation
stuti-2005 Apr 29, 2026
e679813
Implement User_ProfileView for user profile updates
stuti-2005 Apr 29, 2026
bcb3135
Remove comment in post method of implementation.rst
stuti-2005 Apr 29, 2026
d503f76
Add setup instructions to documentation
stuti-2005 Apr 29, 2026
6251b43
Add documentation for project components and services
stuti-2005 Apr 29, 2026
692513f
Fix formatting of bash command in setup documentation
stuti-2005 Apr 29, 2026
c102e04
made documentation for setup.rst
stuti-2005 Apr 29, 2026
2797765
added all setup processes to setup.rst
stuti-2005 Apr 29, 2026
a189afc
added all commandds to setup.rst
stuti-2005 Apr 29, 2026
b3c6497
cd
stuti-2005 Apr 29, 2026
f941035
cd
stuti-2005 Apr 29, 2026
ae53275
merging setup.rst
stuti-2005 Apr 29, 2026
263888f
Refactor documentation and remove unused model and serializer code
MM674294 Apr 29, 2026
d29167b
cd
stuti-2005 Apr 29, 2026
ed1834c
deleting files
stuti-2005 Apr 29, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added .DS_Store
Binary file not shown.
23 changes: 23 additions & 0 deletions docs/source/components.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
Project Components
==================

Main Modules
------------

1. Identity Management Service
Handles Account creation, Login & Autheticaation, Password hashing & Verification

2. Society Mangement Service
Manages creating, updating, searching and deleting societies

3. Membership Service
Handles Joining and Leaving societies

4. Event Service
Manages joining and leaving events and display of events

5. Attendence Service
Manages attendence count of number of people in a society and joining an event.

7. Notification Service
Manages RSVP perferences for upcoming events and information for joined society.
1 change: 1 addition & 0 deletions docs/source/generated/authentication.models.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

1 change: 1 addition & 0 deletions docs/source/generated/authentication.serializer.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

1 change: 1 addition & 0 deletions docs/source/generated/backend.authentication.models.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

1 change: 1 addition & 0 deletions docs/source/generated/models.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

1 change: 1 addition & 0 deletions docs/source/generated/serializer.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

1 change: 1 addition & 0 deletions docs/source/generated/views.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

37 changes: 37 additions & 0 deletions docs/source/implementation.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
Implementation
==============

Technologies Used
----------------
- Python (backend)
- SQL Database
- Dart/Flutter (frontend)
- GitHub for version control

Example Code
------------

.. code-block:: python
class User_ProfileView(APIView)
permission_classes = [IsAuthenticated]
def get(self, request):
user = request.user
serializer = UserSerializer(user)
return Response(serializer.data)
def post(self, request):
user = request.user
new_name = request.data.get("name")
if not new_name:
return Response({"error": "New name is required"}, status=400)
user.name = new_name
user.save()
return Response({"message": "Name changed successfully"})
8 changes: 7 additions & 1 deletion docs/source/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,12 @@ Contents
--------

.. toctree::
:maxdepth: 2
:caption: Contents:

usage
scope
requirements
implementation
setup
components
api
Empty file added docs/source/models.py
Empty file.
57 changes: 57 additions & 0 deletions docs/source/requirements.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
User Requirements
=================

Functional Requirements
----------------------
- Users must be able to create an account using a secure registration process including email and password
- Users should be able to join/leave societies
- Users should be able to filter societies and view events clearly on a calendar interface for easy navigation.
- Users should be able to receive notifications for events and activities from societies they have joined
- Users can opt in or out of receiving notifications for events and activities from the societies they have joined.
- If a user leaves a society, they should no longer receive notifications.
- Users should be able to sign in if they have forgotten their password.
- Users should be able to see events for the society/societies they have joined
- Users should be able to see a description and location of an event when they click on it


Non-Functional Requirements
--------------------------
- The users' passwords must be securely hashed and never stored in plain text
- Users should be able to communicate through a chat box with society's admins.
- All user actions related to joining/leaving societies and changing notification preferences should be logged for audit
purposes

Admin Requirements
==================

Functional Requirements
----------------------
- Admins should be able to place events/remove onto the main calendar page
- Admins should be able to track attendance
- Admins should be able to create events
- Admins should be able to remove events
- Admins should be able to update their profile data, including password changes and notification preferences.
- Admins should be able to edit/update event details
- Admins should be able to update their profile data, including password changes and notification preferences.
- Admins should be able to manage society informatio
- Admins should be able to set capacity limits
- Admins should be able to generate or export attendance reports

System Requirements
===================

Functional Requirements
----------------------
- The system will allow users to to create an account
- The system will allow users and admins to log into the system
- The system will not allow users to join a society they have already joined twice
- The system will allow the user to unjoin a society if they wish to.
- The system should provide a search and filter functionality to find societies by name, type, or category.
- The system should be able to track membership status and allow users to view the societies they have joined.
- The system must send notifications to users about events and activities for societies they have joined.
- The system must display the availability of spaces for society events
- The system shall provide an account settings interface that allows users to update their password and notification
preferences.
- The system shall provide an account management interface that allows administrators to update their credentials and
notification preferences.

20 changes: 20 additions & 0 deletions docs/source/scope.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
Project Scope
=============

This project aims to develop a system for University Students of Portsmouth University so they can access all society information.

The system includes:
- User side
- Admin side
- Event information
- Live Analytics for admin society managment
- Featured and Top Societies
- Event Creation and Deletion
- Event and Society Browsing


Objectives
----------
- Improve Society engagement
- Track society engagement for admins
- Make Society events more accessible
Empty file added docs/source/serializer.py
Empty file.
135 changes: 135 additions & 0 deletions docs/source/setup.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
Setup Instructions
==================

This project consists of a Flutter frontend and a Django REST backend.

Requirements
------------

Make sure you have the following installed:

Frontend:
- Flutter SDK (>= 3.x)
- Dart SDK (>= 3.9.0)

Backend:
- Python (>= 3.10)
- PostgreSQL
- Redis (for Celery background tasks)

Tools:
- Git

Installation
------------

Clone the repository:

.. code-block:: bash

git clone https://github.com/your-repo
cd your-repo

-----------------------------------
Backend Setup (Django REST Framework)
-----------------------------------

1. Create virtual environment:

.. code-block:: bash

python -m venv venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows

2. Install dependencies:

.. code-block:: bash

pip install -r requirements.txt

3. Configure PostgreSQL database:

Update your database settings in ``settings.py``:

- Database name: unisoc_db
- User: unisoc_user
- Password: strongpassword

4. Apply migrations:

.. code-block:: bash

python manage.py migrate

5. Create superuser:

.. code-block:: bash

python manage.py createsuperuser

6. Run backend server:

.. code-block:: bash

python manage.py runserver

Backend runs at:
http://127.0.0.1:8000/

-----------------------------------
Frontend Setup (Flutter)
-----------------------------------

1. Navigate to Flutter project:

.. code-block:: bash

cd frontend # adjust if different

2. Install dependencies:

.. code-block:: bash

flutter pub get

3. Run the app:

.. code-block:: bash

flutter run

-----------------------------------
Celery & Redis (Background Tasks)
-----------------------------------

Start Redis server:

.. code-block:: bash

redis-server

Start Celery worker:

.. code-block:: bash

celery -A config worker --loglevel=info

-----------------------------------
Environment Variables (Important)
-----------------------------------

Update email configuration in ``settings.py``:

- EMAIL_HOST_USER
- EMAIL_HOST_PASSWORD

⚠️ Do not expose real credentials in production.

-----------------------------------
Notes
-----------------------------------

- Ensure PostgreSQL is running before starting Django
- Ensure Redis is running before starting Celery
- Flutter app communicates with backend via API endpoints
Empty file added docs/source/views.py
Empty file.