-
Notifications
You must be signed in to change notification settings - Fork 1
/
README
34 lines (30 loc) · 2.91 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
This is the source code of the SAC Election Software developed by Group 27 for the DBMS course. It is a full stack development project designed to make SAC elections seamless and easy on both users and administrators without compromising on legitimacy and security
TECH STACK SUMMARY
database:
postgresSQL (psql)
database relations:
1. candidates - for the candidates that have been approved to contest in the elections
2. applies_for - connect application with the student
3. votes_for - connect each vote for each candidate with the student
4. applicants - for applications submitted by students to contest in the elections
5. voters - for all those students eligible to participate in voting/contesting in the elections
6. nitc_students - inherited from the database of all the students of NITC, selecting a subset of the attributes like roll no., name, nitc email, and phone no. and an additional attribute to determine eligibility to participate in the elections
7. admins - for all the administrators of the database. left untouched after hosting the app.
8. users - for storing identify information of all users (admin and students) who use the app
9. posts - for storing SAC posts open to contest in the elections
back-end:
developed using flask(python). Packages used provided in the requirements.txt file. Comprises of the following modules:
1. __init.py__ - initializing and configuring the app. linking the modules.
2. admin.py - to serve administrator requests
3. applications.py - requests related to applications from applications page for students
4. auth.py - authorization module. It authorizes and authenticates users on logging in. Also logs them out
5. db.py - database connection, initializing with dummy data
6. student.py - redirecting students on logging in to correct page (applications/voting) and fetching election statistics for open view.
7. user.py - defines the user model used by the app to track its users and provides functions for verifying voting status administrator rights, etc.
8. utils.py - helper functions used throughout the app like student/admin exclusive access, testing if application/voting page is open
9. vote.py - get candidates contesting in the elections and validate votes of users for/from the voting page for students
front-end:
developed using reactJS. packages used provided in the package-lock.json under each subdirectory. Each of the subdirectories corresponds to an single page application:
1. admin-panel: page which provides an interface for all admin related functions including modifying posts, changing eligibility, accepting/rejecting applications and locking/unlocking access to the voting/application pages
2. applications: applications page for students where students can check the status of their application and submit new applications to contest for elections
3. voting: voting page for students where students can see all the candidates and pick a candidate for each post and cast their vote.