This open-source Django web application is designed to help Teaching Assistants (TAs) manage their classes efficiently. Whether it's scheduling time slots, tracking reservations, or organizing forms for student submissions, this tool is tailored for educators looking for an intuitive and powerful solution.
- Dynamic Form Management: Create and manage forms with associated course details.
- Time Slot Scheduling: Define and manage reservation slots for specific classes or events.
- Student Reservations: Track which students have reserved specific time slots.
- Customizable Semesters: Support for different academic years and semesters.
- Admin-Friendly: Easy-to-use interfaces for creating, updating, and managing resources.
- Responsive Design: Optimized for both desktop and mobile use.
Teaching Assistants can use this application to:
- Organize Classes: Create forms linked to specific courses and semesters.
- Schedule Meetings: Define available time slots for one-on-one sessions, group discussions, or lab sessions.
- Track Attendance: Monitor which students have reserved or attended sessions.
- Simplify Communication: Use the platform to keep track of students’ reservations and respond to their needs more effectively.
You can either run the application locally or explore the deployed version as shown below.
![]() |
---|
A welcoming view for all users, showcasing the main features. |
![]() |
---|
Quick navigation through the application's core features. |
![]() |
---|
Secure login with a link to the signup page for new users. |
![]() |
---|
Personalized dashboard displaying user-specific content. |
![]() |
---|
Manage and access all your forms in one place. |
![]() |
---|
Effortlessly generate a new form tailored to your needs. |
![]() |
---|
Detailed view of a specific form, including its metadata. |
![]() |
---|
Browse all responses submitted to your form. |
![]() |
---|
Easily schedule multiple time slots in one go. |
![]() |
---|
Add a single, precise time slot with flexibility. |
![]() |
---|
Allow students to book available time slots effortlessly. |
![]() |
---|
Keep your account details up-to-date with ease. |
![]() |
---|
Enhance security by updating your password. |
Follow these steps to clone and run the project locally:
- Python 3.8+
- Django 4.0+
- SQLite (default) or PostgreSQL for production use
- Git
-
Clone the Repository:
git clone https://github.com/amirkhgraphic/MyOnlineForm.git cd MyOnlineForm
-
Create and Activate a Virtual Environment:
python -m venv env source env/bin/activate # On Windows: env\Scripts\activate
-
Install Dependencies:
pip install -r requirements.txt
-
Set Up the Database:
python manage.py migrate
-
Create a Superuser:
python manage.py createsuperuser
-
Run the Development Server:
python manage.py runserver
-
Access the Application:
Open your browser and navigate to
http://127.0.0.1:8000/
.
forms/
: Handles form creation and management.core/
: Manages setting and configurations of WSGI & ASGI application.templates/
: Contains HTML templates for frontend rendering.static/
: Includes static files (CSS, JS, etc.).users/
: User management and authentication logic.
/admin/
: Django admin panel./form/
: Includes all form-related functionality (detailed below)./user/
: Includes all user authentication and profile-related functionality (detailed below)./
: Home page (static template).
/form/
: View all forms (FormListView
)./form/create/
: Create a new form (FormCreateView
)./form/<slug:slug>/
: View form details (FormDetailView
)./form/<slug:slug>/update/
: Update an existing form (FormUpdateView
)./form/<slug:slug>/time/<int:pk>/
: Book a specific time slot (BookTimeSlotView
)./form/<slug:slug>/answers/
: View all booked time slots for a form (BookedTimeSlotsView
)./form/<slug:slug>/success/
: Booking success page (SuccessView
)./form/delete-time-slot/<int:pk>/
: Delete a specific time slot answer (AnswerDeleteView
)./form/add-timeslot/<int:form_id>/
: Add a single time slot (TimeSlotCreateView
)./form/add-timeslots/<int:form_id>/
: Add multiple time slots (TimeSlotsCreateView
)./form/<slug:slug>/time-slot/delete/<int:pk>/
: Delete a time slot (TimeSlotDeleteView
).
/user/signup/
: User signup (UserSignUpView
)./user/login/
: User login (UserLoginView
)./user/logout/
: User logout./user/profile/
: Update user profile (UpdateProfileView
)./user/password_change/
: Change password./user/password_change/done/
: Password change complete.NOT IMPLEMENTED/user/password_reset/
: Initiate password reset.NOT IMPLEMENTED/user/password_reset/done/
: Password reset initiated.NOT IMPLEMENTED/user/password_reset/<uidb64>/<token>/
: Confirm password reset.NOT IMPLEMENTED/user/password_reset/complete/
: Password reset complete.
We welcome contributions to enhance this project! Here’s how you can help:
-
Fork the repository.
-
Create a feature branch:
git checkout -b feature-name
-
Commit your changes:
git commit -m "Add a meaningful message"
-
Push to your branch:
git push origin feature-name
-
Open a pull request.
This project is licensed under the MIT License. Feel free to use, modify, and distribute it as per the license terms.
If you encounter any issues or have suggestions for improvements, feel free to open an issue in the repository or contact the project maintainers.
Special thanks to all the TAs and educators whose feedback helped shape this application. Your dedication to teaching and supporting students inspires us to build better tools!