Code Monkey home page Code Monkey logo

examsystem's Introduction

Exam System

Introduction

The Examination System is a Java-based application that allows students to take exams, view question papers, and track their performance. In this, each student is rewarded with medals based on their test performance. It also provides an administrative interface to manage question papers and view the leaderboard. The application consists of several Java files that work together to implement the functionality.

Table of Contents:

Show some ❤️ by starring the repository! ⭐️

Usage

  • Download the repository:
    git clone https://github.com/adivishnu-a/ExamSystem
  • Navigate to output folder:
    cd ExamSystem\out\production\ExamSystem
  • Run the Project:
   java Main
  • (Optional) If you want to Build from source, after cloning the repository, Compile the Java files using a Java compiler. For that, Make sure you have JDK (Java Development Kit) installed on your system and navigate to the src directory and run the following command. Then you can navigate to the out folder and run the project using Main.class file:
   javac -d out/production/ExamSystem Admin.java Authentication.java Datasource.java Leaderboard.java Main.java QuestionPaper.java Security.java Student.java
   cd out/production/ExamSystem
   java Main
  • (Alternative) Run this app directly without all these steps by downloading the pre-built and pre-compiled version here

Documentation

Modules

Admin.java

This class represents the administrator of the exam system. It provides functionality to view, add, edit, and delete question papers. It also has an option to view the leaderboard.

Methods

  • viewPapers(): Displays a list of question papers.
  • addPaper(): Allows the administrator to add a new question paper.
  • editPaper(): Allows the administrator to edit an existing question paper.
  • deletePaper(): Allows the administrator to delete a question paper.
  • adminMenu(): Displays the admin dashboard and handles user input.

Authentication.java

Contains methods for user authentication, including student login, student signup, and admin login.

Methods

  • stuLogin(): To log in as an existing student
  • stuSignup(): To create a new student account
  • adminLogin(): To login as the administrator

Datasource.java

This class handles data storage and retrieval for the exam system. It manages the list of users (students) and question papers. It also provides methods to read and save data to files.

Methods

  • readFile(): Reads user data from the file.
  • saveFile(): Saves user data to the file.
  • readPapers(): Reads question papers from the file.
  • savePapers(): Saves question papers to the file.

Leaderboard.java

Displays the leaderboard, which shows the rankings of students based on their medals.

Methods

  • static showBoard(): Displays the student leaderboard in a sorted order based on their medals

Main.java

The main entry point of the application. It presents a menu to select user types and handles user interactions.

Methods

  • public static void main(String[] args): Starts the program and presents a menu to select user types and handles user interactions.

QuestionPaper.java

This class represents a question paper. It contains a list of questions and provides methods to read and save question paper data from/to a file. It also allows setting, editing, and taking exams.

Classes

  • Question: Represents a single question with the question text, options, and the correct answer.
  • QuestionPaper: Represents a full question paper.

Methods

  • readPaper(): Reads question paper data from the file.
  • viewPaper(): View the specified question paper.
  • savePaper(): Saves question paper data to the file.
  • setPaper(): Allows setting up a new question paper.
  • editPaper(): Allows editing an existing question paper.
  • takeExam(): Allows a student to take an exam based on the question paper.

Student.java

This class represents a student in the exam system. It provides functionality to view question papers, take exams, and view the leaderboard.

Methods

  • viewPapers(): Displays a list of question papers.
  • startExam(): Allows the student to start an exam.
  • stuMenu(): Displays the student dashboard and handles user input.

Security.java

This class provides encryption and decryption functions for string and integer values. It uses Base64 encoding for encryption and decryption.

Methods

  • encStr(String str): Encrypts a string using Base64 encoding.
  • decStr(String str): Decrypts an encoded string using Base64 decoding.
  • encInt(int i): Encrypts an integer value using Base64 encoding.
  • decInt(String str): Decrypts an encoded integer value using Base64 decoding.

Contributing

Contributions to the Examination System are welcome. If you want to contribute, please follow these steps:

  • Fork the repository.
  • Create a new branch.
  • Make your changes.
  • Commit your changes.
  • Push the branch to your forked repository.
  • Submit a pull request.

Planned Features

  • Adding a Grapical User Interface (GUI)
  • Enhancing the Question Navigation

License

This project is licensed under the MIT License.

examsystem's People

Contributors

adivishnu-a avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.