Welcome to the official repository for the Academy of Technology's college website. This project is developed as part of a college-level website design challenge. The website provides comprehensive information about the college, including events, notices, departments, and more.
Live Link
Β·
Repo Link
Β·
Mail Us
clg_website_demo.mp4
π° Table of Contents
This project utilizes the following technologies:
- Next.js: A React framework for building server-side rendered and static web applications.
- MongoDB: A NoSQL database for storing application data.
- Node.js: A JavaScript runtime for executing server-side code.
- Express.js: A web application framework for Node.js.
- jsonwebtoken: A library for creating and verifying JSON Web Tokens (JWT) for authentication.
- Tailwind CSS: A utility-first CSS framework for designing responsive user interfaces.
- bcrypt: A library for hashing passwords.
- Cloudinary: A cloud-based service for managing images and videos.
- cookie-parser: Middleware for parsing cookies.
- GitHub: Version control and collaboration platform.
- nextjs-toploader: A loading indicator component for Next.js.
The website includes the following features:
- Admin Authentication: Secure login system for admin users.
- Admin Dashboard: Interface for admins to manage website content.
- Create Event: Admins can create new events.
- Edit Event: Admins can edit existing events.
- Responsive UI: The website is fully responsive and works on all devices.
- Current Notice Line: Displays the latest notices for students and staff.
- About Section: Information about the college.
- Upcoming Event Section: Lists future events at the college.
- Highlights Section: Showcases important achievements and news.
- Departments Section: Information about various departments.
- FAQ Section: Frequently asked questions and their answers.
- Syllabus Option: Provides syllabi for all departments.
- Contact Option: Contact form and details for reaching out to the college.
The website includes a robust admin authentication system. Upon signup, new admin account is created, but he/she is not immediately granted access to the admin dashboard. Instead, they undergo verification by a designated "super admin" from our database.
Only super admins have the authority to approve new admin accounts. This verification step ensures that only authorized individuals gain access to the admin dashboard and its functionalities.
Once verified by a super admin, admin users gain access to the admin dashboard. From there, they can perform various tasks such as adding, editing, and managing events, as well as other administrative duties.
This two-step authentication process enhances security and control over admin access to the website's backend functionalities.
To set up the project locally, follow these steps:
-
Clone the repository:
git clone https://github.com/Soumojitshome2023/college-website-nextjs
-
Install the dependencies:
npm install
-
Set up environment variables. Create a
.env
file in the root directory and add the following variables:- Client :
NEXT_PUBLIC_BASEURL= http://localhost:3000 NEXT_PUBLIC_SERVERURL= http://localhost:4000 NEXT_PUBLIC_CLOUDNAME= NEXT_PUBLIC_UPLOAD_PRESET= NEXT_PUBLIC_CLOUD_FOLDER=college_website
- Server :
MONGO_URI= FRONTEND_URI=http://localhost:3000 REFRESH_TOKEN_KEY= ACCESS_TOKEN_KEY= PORT=4000
-
Run the development server:
npm run dev
To use the website, navigate to http://localhost:3000
in your browser. Admin users can log in to access the admin dashboard and manage content.
Meet the awesome people who have contributed to this project:
Soumojit Shome[Lead] |
Satwick Mukherjee |
Ritesh Pramanik |
Debojyoti De |