The Annual Report Generator is a user-friendly web application designed to help educational institutions generate detailed annual reports. The app allows users to input data about their college or school, such as student performance, teacher performance, revenue, expenses, etc., and then generates a structured annual report. Built using HTML, CSS, JavaScript, MongoDB, Express, and Node.js, this application offers an intuitive interface for users to manage their reports and feedback.
- User Authentication: Users can log in or register to save and manage their annual reports.
- Report Generation: Generate detailed annual reports by entering information about school statistics, performance, finances, etc.
- Top Ranking Colleges: View a list of top-ranking colleges based on various metrics such as total revenue, student performance, teacher performance, etc.
- Responsive Design: The application is mobile-friendly, ensuring ease of use across devices.
- Data Persistence: All user data, including reports and comments, are stored in a MongoDB database.
- HTML
- CSS
- JavaScript (Vanilla JS)
- Bootstrap (for responsive design)
- Node.js
- Express.js
- MongoDB (for data storage)
- Mongoose (for MongoDB interaction)
- Express-session (for session management)
- EJS (Embedded JavaScript templates for rendering dynamic HTML)
To run this project locally, make sure you have the following installed:
- Node.js and npm (Node Package Manager)
- MongoDB (or use MongoDB Atlas for a cloud database)
Once the prerequisites are installed, you can proceed with running the application as described above.
Upon visiting the home page, users can see the navigation links and choose to either:
- Login (if they already have an account)
- Register (if they don’t have an account)
Once logged in, users can access the Generate Report page, where they can input various details like:
- College Name
- Academic Year
- Total Students
- Total Teachers
- Total Revenue
- Total Expenses
- Student and Teacher Performance Data
After filling out the form, the user can submit the data, which is then stored in MongoDB, and the generated report is displayed on the page.
After generating reports, users can view the Top Ranking Colleges based on various criteria such as:
- Total Revenue
- Student Performance (average marks or attendance percentage)
- Teacher Performance (average classes taught, feedback score)
The rankings are generated dynamically, and users can access them from the Ranking page. This helps institutions compare their performance with others in various categories.
Users can log out of their session at any time, and their session data will be cleared.
This app uses Express-session to handle user authentication, where users need to log in to generate reports and comment on them. The Passport.js strategy is used for authentication.
- Registration: A new user can create an account by providing their email and password.
- Login: Existing users can log in using their credentials.
- Session Management: Sessions are maintained to ensure that users remain logged in during their session.
- Logout: Users can log out, which will destroy the session and redirect them to the login page.
If you’d like to contribute to this project, feel free to fork the repository and submit a pull request. Please follow the steps below:
- Fork the repository.
- Create a new branch (
git checkout -b feature-name
). - Make your changes and commit them (
git commit -am 'Add feature'
). - Push to the branch (
git push origin feature-name
). - Open a pull request.
- Node.js, Express.js, MongoDB, and Mongoose for the backend.
- Bootstrap for the responsive UI design.
- EJS for server-side rendering of dynamic pages.
- Font Awesome for the icons used in the UI.
- Stack Overflow for solutions and tips during development.
This project is licensed under the MIT License.




