Corneli Primary is a Django-based web application for Corneli Primary School, providing a public-facing static website and a secure portal for parent-teacher communication. The app is designed to offer essential information for parents and students and features a parent-teacher portal accessible with a login.
- Static Website: A public-facing page where the school shares announcements, events, resources, and contact information.
- Parent-Teacher Portal: A secure portal for parents and teachers to communicate, view student progress, access important documents, and stay informed.
- Modular Authentication: Uses a submodule for handling user authentication, which provides secure access to the portal.
- Backend: Django (Python)
- Frontend: HTML/CSS, JavaScript
- Authentication: Submodule for secure user login
- Database: (Specify your choice, e.g., SQLite, PostgreSQL, etc.)
To set up the project locally, follow these steps:
- Clone the repository:
git clone https://github.com/ColinDaglish/corneli-primary.git
- Initialize the authentication submodule:
git submodule update --init --recursive
- Navigate to the project directory:
cd corneli-primary
- Set up a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows use venv\Scripts\activate
- Install dependencies:
pip install -r requirements.txt
- Run database migrations:
python manage.py migrate
- Create a superuser (for admin access):
python manage.py createsuperuser
- Run the development server:
python manage.py runserver
Visit http://127.0.0.1:8000/ in your browser to access the app.
Public Website: Available at the root URL. This page provides general information for visitors and parents.
Parent-Teacher Portal: After logging in through the secure authentication module, parents and teachers can access the portal's features, including student reports, event information, and messaging.
- Environment Variables:
Use a .env file to securely store environment variables.
Make sure to configure variables for database settings, secret key, and any other sensitive information.
- Submodule Authentication:
The authentication submodule manages all user authentication and authorization. Ensure that it’s configured and up-to-date before deployment.
If you would like to contribute to this project:
-
Fork the repository.
-
Create a new branch: git checkout -b feature-name.
-
Make your changes and commit them: git commit -m 'Add some feature'.
-
Push to the branch: git push origin feature-name.
-
Submit a pull request.
This project is licensed under the MIT License.
For questions or collaboration, please contact ColinDaglish.
