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.