Welcome to the Classroom-Template repository! This repository is designed as a template for the Student User Registry and Management System (SURMS) project. It provides a structured foundation for backend and frontend development, complete with documentation and deployment guides.
The Classroom-Template repository is intended to serve as a starting point for educational projects within the Skunkworks Academy. It includes:
- A Django backend with REST API capabilities.
- A React frontend for user interaction.
- Detailed documentation covering system architecture and deployment.
- π οΈ Comprehensive Backend: Built with Django, featuring RESTful APIs and database models for managing student data.
- π¨ Interactive Frontend: Developed with React, providing an intuitive user interface for registration and profile management.
- π Extensive Documentation: Includes guides for API usage, system architecture, and deployment processes.
Hereβs an overview of the directory structure:
Classroom-Template/
βββ backend/
β βββ requirements.txt
β βββ manage.py
β βββ surms_backend/
β β βββ __init__.py
β β βββ settings.py
β β βββ urls.py
β β βββ wsgi.py
β β βββ asgi.py
β β βββ models.py
β β βββ views.py
β β βββ serializers.py
β β βββ api/
β β β βββ __init__.py
β β β βββ urls.py
β β β βββ views.py
β β β βββ serializers.py
β β βββ tests/
β β βββ __init__.py
β β βββ test_models.py
β β βββ test_views.py
β βββ .env.example
βββ frontend/
β βββ public/
β β βββ index.html
β β βββ favicon.ico
β βββ src/
β β βββ components/
β β β βββ Header.js
β β β βββ Footer.js
β β β βββ Profile.js
β β β βββ RegistrationForm.js
β β βββ App.js
β β βββ index.js
β βββ package.json
β βββ .env.example
βββ docs/
β βββ API_DOCUMENTATION.md
β βββ SYSTEM_ARCHITECTURE.md
β βββ DEPLOYMENT_GUIDE.md
βββ .gitignore
βββ README.md
βββ LICENSE
-
Navigate to the
backend/
directory. -
Install the required dependencies:
pip install -r requirements.txt
-
Set up your environment variables using the
.env.example
file.
-
Navigate to the
frontend/
directory. -
Install the required dependencies:
npm install
-
Set up your environment variables using the
.env.example
file.
-
Start the Django development server:
python manage.py runserver
-
Start the React development server:
npm start
The SURMS application consists of a Django backend and a React frontend. The backend serves as an API provider, managing the database and authentication, while the frontend interacts with the backend via RESTful API calls.
Component | Description |
---|---|
Backend | Django-based, REST API, PostgreSQL for database management |
Frontend | React-based UI, state management with hooks |
Deployment | Backend on Heroku, Frontend on Vercel |
Hereβs a visual representation of the system architecture:
(Image source: Wikimedia Commons)
The repository includes the following documentation to guide you through various aspects of the project:
- API Documentation: A detailed guide to using the API, located in
docs/API_DOCUMENTATION.md
. - System Architecture: An overview of the systemβs components and interactions, found in
docs/SYSTEM_ARCHITECTURE.md
. - Deployment Guide: Instructions for deploying the application on Heroku and Vercel, available in
docs/DEPLOYMENT_GUIDE.md
.
Contributions are welcome! Please open an issue or submit a pull request for any improvements, bug fixes, or additional features.
- Fork the repository.
- Create a new branch (
git checkout -b feature-branch
). - Make your changes and commit them (
git commit -m "Feature description"
). - Push to the branch (
git push origin feature-branch
). - Open a pull request.
This repository is licensed under the MIT License. See the LICENSE file for more details.