About • Features • Installation • CI/CD
Developed by : Ishita Datta
Studee is a student portal application that helps students and teachers communicate both virtually and physically by keeping students ENGAGE-ed to use the platform with the help of a Credit-based system .
- Tools and Technologies
- django
- HTML
- CSS
- JavaScript
- Python
- Figma
- Chart.js
- Heroku
- Azure Boards
Table of Contents
Students can provide their vaccination status and their preferred mode of classes and teacher can receiver a roster consisting of these student details.
- Students can select option for offline/online class
- Students can select vaccination status (not vaccinated/ partially vaccinated/ fully vaccinated)
- If vaccinated, students must upload latest vaccination certificate
- Display notice for students on dashboard to update vaccination status not done
- Teachers will receive list of all student preferences
*All teachers are assumed to be fully vaccinated
Student can upload their assignments and teachers can grade the assignments
- Teachers can create a new assignment(assignment title, assignment detail, assignment course, marks, submission due date)
- Students can view assignments if the student is enrolled in the course
- Students assignment submission form - to upload assignment document
- Teachers can view assignment submissions
- Teachers can download each assignment
- Teachers can edit assignment
- Teachers can delete assignment uploaded by them
- Students can delete assignment submitted by them
- Students can re-submit assignment
- Students can view submitted assignment
- Display pending assignment submission deadlines on calendar
- Display number of pending days till deadline (emphasis on days remaining if deadline less than or equal to 2 days)
- Auto-update assignment expiry status post submission deadline
- Teachers can grade assignments
Students and teachers can interact in the forum in the form of posts which are segregated into categories.
A category is a topic of conversation.
- Segment each post under an existing category or create a new category for a post
- Display latest post of each category in category list
- Display number of posts of each category
- Map each category to an engagement score (0 Enagement Topic, Low Engagement Topic, Popular, High Engagement, Closed Topic)
- Display category and its posts engagement score using legend icons
- Create a new post
- Add tags to posts
- Display date and user next to post/comment/reply
- Comment on a post
- Reply to a comment on a post
- View other comments and replies
- Show user type (teacher/student) for each post, comment, reply
- Display number of comments and number of views for the post
- Increment engagement score for each user forum activity
- Increment hit count of a post every time a new user views the post
- Delete post (and its trailing comments and replies) by post owner
- Delete comment (and its trailing replies) by comment owner
- Delete comment reply by its owner
New users can create a new account and existing users can log in to their accounts.
- Sign Up by entering user details (firstname, lastname, email,type of user, password, re-enter password)
- Create two sets of users - Student and Teacher
- Unique username and email authentication
- Password length check
- Password strength check (too short/too common/all numbers)
- Sign In by entering user details (email and password)
- Superuser for admin privileges
- Logout
- Session storage
- Automatic login for user if he/she is already logged in
- Display account successfully created message for new users
Every functionality in the application has some actions that can earn the user some credits.
- Credits earned for posts on forum
- Credits earned from commenting on posts on forum
- Credits earned from replying to comments on forum
- Credits earned from assignment submission
- Credits earned from joining a club
- Credits earned from attending an event
- Credits earned from enrolling for a course
- Credit distribution split-up representation using Chart.js
- Credit redeem options
- Display student with highest credits as 'Top Credit student' in dashboard
- Credits deducted if posts/comments/replies are deleted
- Credits deducted if assignment submission is deleted
- Credits deducted on leaving a club
- Credits deducted on skipping an event
- Credits deducted on withdrawing from a course
Teachers can create a course which a student can get enrolled into and receive assignments for the course.
- Create course option for teachers (course name, course image, course description, credits)
- Course view option for students (course name, teacher name, course description, credits, duration)
- Enroll into course option for students
- Withdraw from a course option for students
- Delete a course if user is a teacher
- Edit a course if user is a teacher
Users can update their profile details.
- Upload profile picture
- View total credits
- View user email id
- Update user bio
- Choose to cancel or save current changes of edit profile details
Students and teachers can create and join clubs and organise and attend events of the club
- Create a club (club name, club description, approval required)
- Student founders must have high credits (30 credits required to create a club)
- Teacher club founders can create clubs without having minimum credit requirement
- Assign founder of the club as the head of the club
- Club founders can create an event (event name, date, location, duration, description)
- Show calendar with event date
- Allow members to join a club
- List current members of the club
- Send teacher approval request for joining club
- Teacher approval notification
- Attend an event
- Skip an event
- Cancel an event
- Club founders can delete a club
- Display club member details regarding vaccination (if all members are vaccinated)
- Leave a club
- Responsive to device resolution
- Minimise and maximise dashboard side drawer
- Display vaccination card as fully vaccinated on dashboard for teachers
- Change password
- Delete account
- Install python3
- Install pip for python3
- Install virtualenv
pip install virtualenv
orpip3 install virtualenv
- Create virtual environment and cd into it
virtualenv studee-app --python python3 && cd studee-app
- Clone git repository into src folder and cd into it
git clone https://github.com/ishitadatta/Studee src && cd src
- Install requirements
pip install -r requirements.txt
orpip3 install -r requirements.txt
- Make appropriate changes to settings module and make migrations using
python manage.py makemigrations
and thenpython manage.py migrate
- Run using
python manage.py runserver
- Create superuser to log into admin
python manage.py createsuperuser
- Paste the server address 127.0.0.1:8000 on any browser to see the webpage working on your local machine
- To view as a superuser user go to url address: http://127.0.0.1:8000/admin
- Software used for agile development - Azure Boards
- Version control - Git & GitHub
- Requirement specification - Traceability Matrix
- Unit Testing - Coverage in Django
- Static testing - Desk checking of code
- Deployment - Heroku